Как сделать ночь и день 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 свет, как уже проверено вручную.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Лучший ответ
4.1 Fast
4.1 Fast
Как сделать ночь и день unity 2d?
Плавно меняйте intensity существующего Global Light 2D. Например, внутри Update используйте float t = Mathf.PingPong(Time.time / 30f, 1f); и затем globalLight.intensity = Mathf.Lerp(0.15f, 1f, t);.
globalLight должен ссылаться на ваш Light2D. Здесь полный цикл занимает шестьдесят игровых секунд: тридцать на осветление и столько же на затемнение.