我想在TileController腳本中發生放置事件時使用PlayerController腳本中的方法實例化預製件。Unity C# - 實例化調用方法的預製
如果我在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; (){ \t player = GetComponent(); }' –
Aeross
確保運行此腳本的GameObject具有附加的PlayerController。如果不是,則添加一個。如果它的確如此,那麼null引用就在你的PlayerController.instantiatePlayer方法中的某個地方,因此使用Visual Studio Tools for Unity擴展將Visual Studio附加到Unity,在該代碼行上放置一條分隔線,然後進入它以查看空引用的位置是。如果你點擊它,控制檯窗口還應該向你顯示異常的調用堆棧(如果我沒有記錯的話) –