#c# #unity3d
#c# #unity-игровой движок
Вопрос:
Я создаю игру для задания, используя Unity. Я хочу, чтобы индикатор менял цвет, когда рядом с ним оказывается определенный объект.
Я получаю сообщение об ошибке, в котором говорится
«Ошибка CS1061 ‘Light’ не содержит определения для ‘color’ и не удалось найти метод расширения ‘color’, принимающий первый аргумент типа ‘Light’ (вам не хватает директивы using или ссылки на сборку?)»
На каждом веб-сайте, который я читал, говорилось, что есть Light.color
, включая документацию Unity. У каждого из них разные проблемы, касающиеся Light.color
.
Код:
Light lc = other.gameObject.transform.parent.gameObject.GetComponent<Light>();
lc.color = Color.green;
Все, что я хочу, это изменить цвет light без получения ошибки.
Ответ №1:
По умолчанию новые скрипты, созданные с помощью редактора Unity, будут иметь «using UnityEngine» в начале.
‘Light’, на который вы ссылаетесь, тоже является собственным объектом Unity, и поэтому вам либо нужно включить «использование UnityEngine», либо ссылаться на объект как UnityEngine.Light
Это не их вина, что они не упоминают об этом в документации, поскольку предполагается, что все в документации является частью API UnityEngine.
Ответ №2:
Nvmd, исправлено
если у кого-то еще возникает эта проблема, это, вероятно, потому, что Unity забыл упомянуть в своей документации, что это: UnityEngine.Light not: Светлый
Комментарии:
1. Возможно, они ожидают, что у вас будет
using UnityEngine;
2. Если вам нужно писать,
UnityEngine.Light
находясьusing UnityEngine
в верхней части вашего скрипта, это означает, что вы создали свой собственныйLight
класс, «скрывающий» Unity. Поэтому, пожалуйста, не вините Unity.