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

2025-12-19 00:29:16

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 UnityEngine;

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。
猜你喜欢