我是Unity的新手,我有一小部分代碼,實際上我是從Unity的教程中直接獲取的。本教程可以在這裏找到,在約12:46
https://www.youtube.com/watch?v=7C7WWxUxPZE如果有明確的參考,我爲什麼會得到一個空引用異常? (Unity)
劇本是正確連接到遊戲對象,遊戲對象具有剛體組件。
該教程已有幾年歷史了,但是我在API中查找了一些東西,並且就代碼的這一部分而言,所有內容看起來都一樣。
下面是腳本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
private Rigidbody rb;
void Start()
{
rb.GetComponent <Rigidbody>();
}
void FixedUpdate()
{
float moveHorizontal = Input.GetAxis ("Horizontal");
float moveVertical = Input.GetAxis ("Vertical");
Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);
rb.AddForce (movement);
}
}
我在兩個地方得到NRE:
rb.GetComponent <Rigidbody>();
rb.AddForce (movement);
只是一個僅供參考,如果你去觀看[上統一的網站教程系列(https://unity3d.com/learn/tutorials/projects/roll-ball-tutorial/moving-player?playlist= 17141)而不是在YouTube上,每個頁面都有寫在視頻底部的代碼,因此您可以檢查您的工作。 –
'rb'是一個明確未實例化的私有字段。你爲什麼期望在調用時不會拋出'NullReferenceException'? –
可能的重複[什麼是NullReferenceException,以及如何解決它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it ) – EJoshuaS