2013-12-04 3 views
1

Я опытный программист, изучающий единство в первый раз. Я знаю, что это самая простая и распространенная ошибка для новичков. Я думаю, что у меня все получилось, но оно все еще вызывает эту ошибку. Что я делаю не так?UnassignedReferenceException: событие после назначения?

UnassignedReferenceException: переменный игрок «GameManager» не был назначен. Вероятно, вам нужно назначить переменную игрока скрипта GameManager в инспекторе.

Я думаю, что следующий скриншот предоставляет все необходимое.

enter image description here

+0

, в котором игровой объект на панели иерархии имеет GameManager.cs Script Component. –

+0

@SheheryarAamir Привет, это был объект «Главная камера», и это указывало на исправление. Я немного запутался здесь, хотя. Какова цель назначения объекта prefab игрока дважды в двух разных местах, подобных этой, одной и той же переменной? Насколько мне известно, класс GameManager уже знает, какой сборник должен иметь к нему относиться. – JanithaR

+0

Вы должны назначить игровой объект в панели иерархии любому скрипту. Отметьте мой ответ спасибо –

ответ

1

вы должны присвоить игры актив в иерархии панели к объекту игры, который имеет GameManager.cs Script Component

0

Я тоже новичок в Unity и была аналогичная проблема, но после того, как думать о что происходит, я пришел к выводу, что сообщение об ошибке немного меня обманывало. Когда он попытался помочь, предложив «Возможно, вам нужно назначить переменную игрока скрипта GameManager в инспекторе» Я пошел прямо к скрипту и установил его, но ошибка сохранилась.

Именно тогда я понял, что у меня не было объекта в палитре Иерархии, в котором был прикреплен мой сценарий. То, что я делал, - это экземпляр объекта (мой сборщик «prefab») во время выполнения, и это был сборник, в который был прикреплен скрипт. Конечно, мой скрипт может быть добавлен к любому количеству объектов, и каждый объект будет иметь свои собственные переменные, поэтому каждый объект должен иметь свои собственные экземпляры своих переменных. Если вы хотите, чтобы одно и то же значение было задано во всех экземплярах, вероятно, вы сделаете свою переменную статической, но она не появится в инспекторе. Таким образом, установка переменной в компоненте Script моего prefab исправила это для меня.

Я думаю, что достаточно вафли на один день - надеюсь, что это поможет кому-то! :)

Смежные вопросы