如何访问另一个变量C#

use*_*280 1 c# unity-game-engine

我必须从这个类中访问变量ammoMagazine

public class Pistol : MonoBehaviour {
    public int ammoMagazine = 7;
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试了这段代码:

public class AmmoCounter : MonoBehaviour {

    public int ammo;
    private Pistol _pistol;     

    void Start () {
        _pistol = GetComponentInChildren<Pistol>();
    }

    void Update () {
        ammo = _pistol.ammoMagazine;
        guiText.text = "Pistol: " + ammo + "/7";
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么有NullReferenceException:对象引用未设置为对象的实例?谢谢,我是新的C#

Rik*_*Rik 7

可能没有为该_pistol字段分配值,因此要么在调用Start之前没有调用Update,要么GetComponentInChildren<Pistol>()返回null.