Object reference not set to an instance of an object Unity3D上編譯器出了這個問題好像是宣告了變數,但是沒有賦值。但是他報錯的那一行是col.GetComponent<PlayerHp> ().AddHP (-5);
這一行我是寫在void OnTriggerEnter(Collider col)里面的具體代碼是
void OnTriggerEnter(Collider col){
Destroy (this.gameObject);
col.GetComponent<PlayerHp> ().AddHP (-5);//AddHp函式在PlayerHp中
}
有朋友們知道是怎么回事嗎多謝多謝!
uj5u.com熱心網友回復:
我好像是自從前面加了個Tag參考了之后就開始報這個錯了 之前沒事的QAQuj5u.com熱心網友回復:
打個斷點查一下就知道了!uj5u.com熱心網友回復:
col.GetComponent<PlayerHp> () 單獨看這一部分。正常來說應該回傳PlayerHp這個物件。但是沒正常的回傳。而是回傳了null.,然后又接上AddHP (-5); 導致了此問題。因為null不存在這個方法col 再看看這部分,如果你的游戲物件被銷毀了。col也會變成了null,一樣是空指標。
造成null的原因無非就那么幾個。例如腳本組件被銷毀了。物件被移除了等等。最好處理例外的就是這種空指標例外的了
uj5u.com熱心網友回復:
Destroy (this.gameObject);col.GetComponent<PlayerHp> ().AddHP (-5)
這兩行代碼換下位置就行 Destroy (this.gameObject);寫在下面一行https://bbs.csdn.net/simple_captcha?code=69674745013d7d8683acf15ddfd369fdefe4aca7&time=1525850184
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/51911.html
標籤:Unity3D
