我怎样才能缓慢而平稳地改变天空盒。在我的代码,它会检查,如果幅度小于等于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);
}
}
}
对于这种使用情况,我建议你使用内置的动画系统的统一。只要创建为您的相机的动画,并通过更改关键帧的天空盒的日夜
我不能测试,但现在,你应该能够做这样的事。调整不同的定时浮子参数。
RenderSettings.skybox.Lerp(daySkyBox,nightSkyBox,1F);
你可能会不得不再次回到线性插值一旦其一天的时间