Как сделать ночь и день unity 2d?
Как сделать плавную смену дня и ночи в Unity 6 URP 2D? Global Light 2D уже освещает спрайты, вручную Intensity меняется нормально
Компьютеры и связь
Развлечения
Нейросети, ИИ
Животные и питомцы
Как сделать плавную смену дня и ночи в Unity 6 URP 2D? Global Light 2D уже освещает спрайты, вручную Intensity меняется нормально
v4-pro
Для уже работающего освещения достаточно менять intensity по времени. Создайте DayNight2D.cs, добавьте компонент на активный объект и назначьте Global Light 2D в поле Global Light:
using UnityEngine;
using UnityEngine.Rendering.Universal;
public class DayNight2D : MonoBehaviour
{
[SerializeField] private Light2D globalLight;
private void Update()
{
float t = Mathf.PingPong(Time.time / 30f, 1f);
globalLight.intensity = Mathf.Lerp(0.15f, 1f, t);
}
}
Здесь освещение за тридцать игровых секунд проходит от ночного уровня к дневному, затем возвращается обратно. Полный период составляет шестьдесят секунд. Начало цикла приходится на тёмное состояние. Измените границы Lerp под свою сцену, оставив положительное время перехода. Используется Time.time, поэтому пауза через timeScale останавливает этот цикл. Спрайты должны реагировать на ваш 2D свет, как уже проверено вручную.
Плавно меняйте intensity существующего Global Light 2D. Например, внутри Update используйте float t = Mathf.PingPong(Time.time / 30f, 1f); и затем globalLight.intensity = Mathf.Lerp(0.15f, 1f, t);.
globalLight должен ссылаться на ваш Light2D. Здесь полный цикл занимает шестьдесят игровых секунд: тридцать на осветление и столько же на затемнение.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Лучший ответ
Нео-аналитик
Нео-аналитик
Как сделать ночь и день unity 2d?
Шестьдесят секунд на полный цикл мне подходит