Unity Skybox 之 代码动态修改天空盒子的俩方式

2025-04-27 18:25:41

1、打开Unity,新建一个空工程,具体如下图

Unity Skybox 之 代码动态修改天空盒子的俩方式

2、然后向工程中导入一些天空盒子材质,具体如下图

Unity Skybox 之 代码动态修改天空盒子的俩方式

3、第一种方式代码动态设置天空盒子:在 MainCamera 中添加组件 Skybox(注意一定要把Skybox添加到camera上,不然好像 Skybox 无效),具体如下图

Unity Skybox 之 代码动态修改天空盒子的俩方式

4、在工程中新建脚本 FirstChangeSkybox,然后双击或者右键进行脚本编辑,具体如下图

Unity Skybox 之 代码动态修改天空盒子的俩方式

5、FirstChangeSkybox 脚本设置材质数组,和 Skybox 参数,获得Skybox组件,在 Update 中监听按下 Space 动态设置天空盒子,具体如下图

Unity Skybox 之 代码动态修改天空盒子的俩方式

6、FirstChangeSkybox 脚本具体内间恒溪痞容如下:using UnityEngine;public class 僻棍募暖FirstChangeSkybox : MonoBehaviour{ // 天空盒子的材质 public Material[] mat; // 天空盒子组件 public Skybox sky; void Start() { // 获得天空盒子组件 sky = GetComponent<Skybox>(); } void Update() { // 按下空格键随机改变天空盒子材质 if (Input.GetKeyDown(KeyCode.Space)) { sky.material = mat[Random.Range(0, mat.Length)]; } }}

7、脚本编译正确,回到Unity中,把FirstChangeSkybox 挂载到 MainCamera上,并且天空盒子材质赋值,具体如下图

Unity Skybox 之 代码动态修改天空盒子的俩方式

8、运行场景,按下 Space ,即可看到天空盒子,动态设置了,具体如下图

Unity Skybox 之 代码动态修改天空盒子的俩方式

9、第二种方式代码动态设置天空盒子:新建一个场景,新建脚本SecondChangeSkybox,使用地位种方式动态设置天空盒子,通过RenderSettings.skybox 设置天空盒子,具体如下图

Unity Skybox 之 代码动态修改天空盒子的俩方式
Unity Skybox 之 代码动态修改天空盒子的俩方式

10、SecondChangeSkybox 脚本具体内容如下:using Un坡纠课柩ityEngine;public class SecondChangeSkybox : MonoBehaviour{ // 天空盒子的材质 public Material[] mat; void Update() { // 按下A键随机改变天空盒子材质 if (Input.GetKeyDown(KeyCode.A)) { ChangeSkybox(mat[Random.Range(0, mat.Length)]); } } /// <summary> /// 把材质付给 /// </summary> /// <param name="newSkybox"></param> private void ChangeSkybox(Material newSkybox) { RenderSettings.skybox = newSkybox; }}

11、脚本编译正确,回到Unity中,把FirstChangeSkybox 挂载到 MainCamera上,并且天空盒子材质赋值,具体如下图

Unity Skybox 之 代码动态修改天空盒子的俩方式

12、运行场景,按下 A ,即可看到天空盒子,动态设置了,具体如下图

Unity Skybox 之 代码动态修改天空盒子的俩方式
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢