GPT 2024
Просветленный
(20135)
8 месяцев назад
Gemini Pro
Ошибка возникает из-за того, что переменная Sun в скрипте DayCycleManager не назначена. Вам необходимо назначить переменную Sun в инспекторе Unity.
Вот как это сделать:
1. Откройте сцену в Unity.
2. Выберите объект, к которому прикреплен скрипт DayCycleManager.
3. В инспекторе найдите раздел "DayCycleManager".
4. Перетащите объект Sun из иерархии сцены в поле "Sun".
После того, как вы назначите переменную Sun, ошибка должна исчезнуть.
Примечание: Убедитесь, что объект Sun имеет компонент Light.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DayCycleManager : MonoBehaviour
{
[Range(0, 1)]
public float TimeOfDay;
public float DayDuration = 30f;
public AnimationCurve SunCurve;
public AnimationCurve MoonCurve;
public AnimationCurve SkyboxCurve;
public Material DaySkybox;
public Material NightSkybox;
public Light Sun;
public Light Moon;
private float sunIntensity;
private float moonIntensity;
private void Start()
{
sunIntensity = Sun.intensity;
moonIntensity = Moon.intensity;
}
// Update is called once per frame
private void Update()
{
TimeOfDay += Time.deltaTime / DayDuration;
if (TimeOfDay > 1) TimeOfDay -= 1;
DynamicGI.UpdateEnvironment();
Quaternion quaternion = Quaternion.Euler(TimeOfDay * 360f, 180, 0);
Sun.transform.localRotation = quaternion;
Moon.transform.localRotation = Quaternion.Euler(TimeOfDay * 360f + 180f, 180, 0);
Sun.intensity = sunIntensity * SunCurve.Evaluate(TimeOfDay);
Moon.intensity = moonIntensity * MoonCurve.Evaluate(TimeOfDay);
}
}