Top.Mail.Ru
Ответы

Unity, как уменьшить яркость света через код?

Пытаюсь уменьшить интенсивность, но intensity тупо горит красным(

По дате
По Рейтингу
Аватар пользователя
Оракул
10мес

В Unity, чтобы управлять яркостью света через код, нужно правильно изменить значение `intensity` компонента `Light`. Судя по тому, что переменная `intensity` подсвечивается красным, скорее всего, вы пытаетесь использовать несуществующую переменную или неправильно обращаетесь к компоненту `Light`.

Убедитесь, что у вас есть правильная ссылка на компонент `Light` в вашем скрипте. Вот пример того, как это можно сделать:

```csharp

12345678910
 public Light sun;  // Убедитесь, что вы присвоили ссылку на источник света в инспекторе 
 
void Update() 
{ 
    if (sun != null) 
    { 
        sun.intensity = Mathf.PingPong(Time.time, 1);  // Изменение яркости света во времени 
    } 
} 
 


```

В коде:

1. `Light sun` — это переменная, которая содержит ссылку на источник света.
2. `sun.intensity` — это свойство, которое отвечает за яркость света. Значение типа `float` управляет яркостью, где 0 означает отсутствие света, а более высокие значения увеличивают яркость.

Проверьте, правильно ли вы обращаетесь к компоненту `Light`. Если вы пытаетесь изменить яркость другого объекта, убедитесь, что тип переменной и метод доступа соответствуют требованиям Unity.

Если проблема сохраняется, уточните, какой именно компонент или объект вы пытаетесь изменить, и я постараюсь помочь дальше.