我正在Unity中進行冒險遊戲並遇到此小錯誤。我試圖訪問實例化對象內的腳本。下面是代碼的相關行:未將對象引用設置爲Unity中對象的實例
public void CastAbility(Vector3 targetLocation) {
print (targetLocation);
var target = Instantiate (prefab2, transform.position, transform.rotation) as GameObject;
Initialize initialize = target.GetComponent<Initialize>();
initialize.targetLocation = targetLocation;
}
從我的理解中,第一行代碼將創建一個名爲prefab2一個遊戲對象。 第二行代碼將允許我訪問prefab2中的組件(一個腳本)。 第三行將更改prefab2腳本中的變量。
對我來說這似乎合乎邏輯,但是我得到一個 「對象引用未設置爲對象的實例」錯誤。
下面是一些細節,如果這有助於找到解決方案。
如果我只用實例化,並離開了target.GetComponent,該prefab2將產生,不會給我任何錯誤......事實上是連接到prefab2只是正常初始化腳本。
我從實例化的子對象調用CastAbility函數。
我試着找到最後4小時的解決方案,但無濟於事。 任何幫助,將不勝感激。
[什麼是NullReferenceException,我該如何解決它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) –
如果你像這樣施放它會發生什麼:'var target =(GameObject)Instanciate(ommited parameters)'?如果它拋出無效的施法豁免,那麼你處於問題的底部 –
是'initialize' null還是'target' null? –