
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(查询主力)
UnityWebRequest是Unity提供用于网络请求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.挂载脚本