首先下载并导入 Enviro - Sky and Weather 的插件,
资源链接介绍可看:Enviro 3 - Sky and Weather | Particles/Effects | Unity Asset Store。
首先,此次使用的是 3.2.1 版本,链接:百度网盘 请输入提取码,提取码:orgb。
打开 HDRP 管线模板,导入包。
导入后的包内容包括以下:
其中,具体教程可见上图这的官方文档 Documentation.PDF。
现在来建立一个Canvas,创建三个按钮,分别为 Rain、Snow和 Storm,来模拟 下雨、下雪和雷暴天气。
新建一个Gameobject空对象,新建一个脚本名称为“WeatherController”,脚本内容如下:
using Enviro;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class WeatherController : MonoBehaviour
{
public Button SnowButton;
public Button RainButton;
public Button StormButton;
public Button FlatCloudsSwitch;
public EnviroManager enviroMgr; // 引用Enviro主控制器
void Start()
{
// 绑定按钮点击事件
SnowButton.onClick.AddListener(() => ChangeWeather("Snow"));
RainButton.onClick.AddListener(() => ChangeWeather("Rain"));
StormButton.onClick.AddListener(() => ChangeWeather("Storm"));
FlatCloudsSwitch.onClick.AddListener(() => SwitchFlatClouds());
}
void ChangeWeather(string weatherType)
{
if (enviroMgr != null)
{
EnviroManager.instance.Weather.ChangeWeather(weatherType);
Debug.Log("已切换天气到: " + weatherType);
}
else
{
Debug.LogError("EnviroSkyMgr 未设置!");
}
}
void SwitchFlatClouds()
{
EnviroManager.instance.FlatClouds.settings.useCirrusClouds = true;
}
}
其中,下述代码为控制天气切换的API,具体API应用去查看官方文档。
EnviroManager.instance.Weather.ChangeWeather(weatherType);
然后分别挂接到对应的对象里
最后分别点击三个按钮,实现效果如下:
完美~~