1041 字
5 分钟
Unity调用OpenWeatherAPI查询天气
查询天气(实时)
2025-07-24
2025-07-26
加载中...

1. 准备资源

A. 网站官方:https://openweathermap.org/   (创建账户,获得免费API Key)

B. 网站API文档调用示例:当前天气数据 - OpenWeatherMap

C. 网站地理编码API文档示例:地理编码 API - OpenWeatherMap

D. 网站天气图标获取(采用F12检查台来获取源图片)天气状况 - OpenWeatherMap

2. 界面搭建

3. 编写详细脚本

A.创建按钮与输入框,检查事件/监听事件

B.创建天气图标加载,采用字典,从持久化文件夹的一个文件夹中加载该图标集合

C.创建协程,进行网络查询请求(Get Post)

D.此处要深度对照API文档实例的各项数据

例如:geturl是对应地理编码API,这样才可以实现输入名称来查询,而不是对照编码查询

Varurl是对应当前天气数据的API(查询主力)

UnityWebRequestUnity提供用于网络请求Http(s)的类,SendWebRequest是发送网络请求

GetJsonYN是下面的一个统一处理方法

E.更新文本UI绝对的对照Json文件

Cache为上文创建的字典

F. 风向选择解析

内部包含16方向360/16=22.5,按照索引排序选择对应风向

这是将角度转换为数组索引的核心计算。

degrees + 11.25: 将角度偏移半个区间 (22.5 / 2 = 11.25)。这样做是为了让每个风向区间的中心对齐。例如,0度(正北)应该落在 "北风" 区间。加上11.25后,0度就变成了11.25,除以22.5是0.5,取整后是0,对应 "北风"。22.5度(东北偏北和东北的边界)加上11.25是33.75,除以22.5是1.5,取整后是1,对应 "东北偏北风"。

/ 22.5: 将调整后的角度除以每个风向区间的宽度,得到一个浮点数索引。

(int)(...): 将结果转换为整数,截断小数部分,得到初步的索引。

% 16: 取模16,确保索引值始终在 0 到 15 之间,以对应 directions 数组的有效索引范围。例如,360度(等同于0度)经过计算后也能正确映射到 "北风"。

return directions[index];: 使用计算得到的 index  directions 数组中取出对应的风向字符串并返回。

G.挂载脚本

源脚本
Unity调用OpenWeatherAPI查询天气
https://www.micostar.tech/posts/unity-openweatherapi/
作者
流转星(Betsy)
发布于
2025-07-24
许可协议
CC BY-NC-SA 4.0

这篇文章是否对你有帮助?