线性插值RenderSettings空中包厢

问题描述 投票:0回答:1

我怎样才能缓慢而平稳地改变天空盒。在我的代码,它会检查,如果幅度小于等于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);
        }
    }
}
c# unity3d monodevelop
1个回答
0
投票

对于这种使用情况,我建议你使用内置的动画系统的统一。只要创建为您的相机的动画,并通过更改关键帧的天空盒的日夜


0
投票

我不能测试,但现在,你应该能够做这样的事。调整不同的定时浮子参数。

RenderSettings.skybox.Lerp(daySkyBox,nightSkyBox,1F);

你可能会不得不再次回到线性插值一旦其一天的时间

© www.soinside.com 2019 - 2024. All rights reserved.