Lerp RenderSettings Skybox - PullRequest
       9

Lerp RenderSettings Skybox

0 голосов
/ 10 февраля 2019

Как мне поменять скайбокс медленно и плавно.В моем коде он проверит, если амплитуда меньше чем равна 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);
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Я не могу проверить прямо сейчас, но вы должны быть в состоянии сделать что-то подобное.Отрегулируйте параметр с плавающей запятой для разных временных интервалов.

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

Возможно, вам снова придется возвращаться назад один раз в дневное время

0 голосов
/ 10 февраля 2019

Для этого случая использования я предлагаю вам использовать единую встроенную систему анимации.Просто создайте аниматор для вашей камеры и измените скайбокс через ключевые кадры для дня и ночи

...