🟥 Unity动态更换天空盒
1️⃣ 方法1
1、在摄像头上添加SkyBox组件
放到其他地方不管用。
2、创建SkyBox类型的的材质球。放入即可。
3、通过代码,你便可获取到SkyBox组件,便可动态更换天空盒了。
2️⃣ 方法2
🟧 旋转天空盒
该功能不按照“一、更换天空盒”那样设置,该功能实现步骤如下:
1、主摄像机——Camera——ClearFlags——DontClear
2、新建辅助摄像机:
a、Camera——CullingMask——Nothing b、Depth:设置的比主摄像机小 c、添加 Skybox 组件,在该组件赋值你想看到的天空盒。
3、现在旋转辅助摄像头,就能看到效果了
小Demo:
效果:
代码:
using UnityEngine; public class Skode_SkyBox : MonoBehaviour { public string intro = @" * 功能:旋转天空盒,自动切换天空盒"; [Tooltip("天空盒摄像头")] public Transform skyboxCamera; [Tooltip("旋转速度")] public float speed = 0.1f; [Tooltip("你想切换的天空盒")] public Material[] skybox; [Tooltip("延迟xs切换天空盒")] public float time = 3; float time_value; int current = 0; private void Start() { time_value = time; } void Update() { skyboxCamera.Rotate(skyboxCamera.up, speed); if (skybox.Length == 0) return; if (time > 0) time -= Time.deltaTime; else { current++; if (current == skybox.Length) current = 0; skyboxCamera.GetComponent<Skybox>().material = skybox[current]; time = time_value; } } }