Я пытаюсь создать экземпляр prefab, используя метод в скрипте PlayerController, когда событие drop происходит в сценарии TileController.Unity C# - Мгновенное создание prefab, вызывающего метод
Если я использую в TileController:
public void OnDrop (PointerEventData eventData){
GameObject instance = Instantiate(Resources.Load("Player", typeof(GameObject))) as GameObject;
}
сборных грузов правильно на сцене.
Но если я использую:
public void OnDrop (PointerEventData eventData){
player.instantiatePlayer();
}
Затем возвращается ошибка:
NullReferenceException: Object reference not set to an instance of an object
Метод PlayerController я использую:
public void instantiatePlayer() {
GameObject instance = Instantiate(Resources.Load("Player", typeof(GameObject))) as GameObject;
}
Я думаю, что это что-то на самом деле просто я пропущен, но я не могу определить, что это такое.
В классе TileController у меня есть: \t 'private PlayerController player; void Start() { \t player = GetComponent(); } ' –
Aeross
Убедитесь, что GameObject, на котором работает этот скрипт, подключен PlayerController. Если нет, добавьте один. Если это так, то нулевая ссылка находится где-то внутри вашего метода PlayerController.instantiatePlayer, поэтому присоедините Visual Studio к Unity с помощью расширения Visual Studio Tools for Unity, поместите разделительную линию на эту строку кода и вставьте в нее, чтобы увидеть, где ваша нулевая ссылка является. В окне консоли также должен отображаться стек вызовов исключения, если вы нажмете на него (если я правильно помню) –