如何缓慢,平稳地更改天空盒。在我的代码中,它将检查幅度是否小于0.7。它现在正在工作,但是当我测试它会突然改变时,我想慢慢地改变它。有任何想法吗?谢谢你们的回答。非常感谢!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DayNight : MonoBehaviour {
public Light light;
public Material nightSkyBox;
public Material daySkyBox;
public float duration;
void Update() {
float phi = Time.time / duration * 2 * Mathf.PI;
float amplitude = Mathf.Cos (phi) * 1.0f + 1.0f;
light.intensity = amplitude;
if (amplitude <= 0.7f) {
RenderSettings.skybox = nightSkyBox;
light.color = new Color32 (68, 170, 255, 255);
} else {
RenderSettings.skybox = daySkyBox;
light.color = new Color32 (255, 181, 99, 255);
}
}
}
答案 0 :(得分:0)
对于此用例,建议您使用内置的动画系统。只需为您的相机创建一个动画师,然后通过关键帧更改昼夜的天空框
答案 1 :(得分:0)
我现在无法测试,但是您应该可以执行类似的操作。调整浮动参数以适应不同的时间。
RenderSettings.skybox.Lerp(daySkyBox,nightSkyBox,1f);
您可能不得不再次忍受一天的时间