[英]Unity C# - Instantiate prefab calling a method
當TileController腳本中發生放置事件時,我正在嘗試使用PlayerController腳本中的方法實例化預制件。
如果我在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;
}
我認為這確實很簡單,但我無法確定它是什么。
您的控制器類具有一個名為“ player”的成員,但未設置任何內容,它為null,這就是為什么要獲取NullReferenceException的原因。 您的第一種方式是正確的。
當您評論Peter的帖子時。 開始功能中的第一個檢查是您的參考“玩家”是否等於null。 GetComponent只是嘗試獲取組件,但是如果找不到,它將返回null。
如果它不為null,請檢查,也許在某些代碼中您可以銷毀玩家參考下的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.