Создание экземпляра класса Unity C #

Работаю над заданием, и это один из примеров кода, с которым я пытаюсь работать в своем коде.

GameObject prefabRocks;
GameObject rocks = Instantiate(prefabRocks) as GameObject;

Я получаю сообщение об ошибке каждый раз, когда этот код запускается в Unity.

Ошибка: UnassignedReferenceException: переменная prefabRocks класса Class1 не была назначена. Вероятно, вам нужно назначить в инспекторе переменную prefabRocks скрипта Class1.

Может ли кто-нибудь помочь мне понять, что именно делает этот код?

Было бы неплохо, если бы вы также могли указать мне на какую-нибудь книгу, которую я могу сделать, чтобы понять этот странный способ создания экземпляров классов и методов.


person Admin666    schedule 02.11.2018    source источник
comment
Это не weird way of instantiating classes and methods, а метод, который следует использовать, когда вы хотите создать экземпляр сборного объекта в текущей сцене. В качестве исключения говорится, что ваш prefabsRocks не назначен (null) и, следовательно, не может быть создан. Кстати, вам это не нужно as GameObject. Пожалуйста, попробуйте экземпляр Unity   -  person derHugo    schedule 02.11.2018


Ответы (1)


Ваша prefabRocks переменная не назначена. Внутри ничего нет, и вам придется чем-то инициализировать. Вы можете либо загрузить префаб из папки ресурсов в Start() или Awake(), либо сделать его общедоступной переменной и назначить переменной, перетащив префаб из вкладки Project в слот здесь

введите здесь описание изображения

person Ryolu    schedule 02.11.2018