仲間と仲間私はいくつかのコードでもう一度問題を抱えています。基本的には、私が開始し、それがエラーを投げている健康パックを作成しようとする:Unity C#でHealthPackを作成しようとするとNullReferenceExceptionが表示されるのはなぜですか?
NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていない HealthSpawnerScript.Update()(Assets/Scripts/HealthSpawnerScript.cs: 31)
以下は私が実行しているコードです。ゲームオブジェクトのPlayerControllerには、PlayerHealth()というPlayer Healthを返すためのメソッドが格納されています。目を覚ましたところで、私は後にスクリプトとメソッドを見つけるためにplayerControllerを設定しました。その後、私はメソッドを呼び出して、後でスクリプトで使用するために変数に代入しようとしています。私はこれがシンプルであるべきだと知っていますが、私は脳のおならを持っています。
public PlayerController playerController;
private int healthHolder;
void OnAwake()
{
playerController = GameObject.Find ("PlayerHealth").GetComponent<PlayerController>();
}
// Use this for initialization
void Start()
{
//set healthExist to false to indicate no health packs exist on game start
healthExist = false;
//playerController = GameObject.Find ("PlayerHealth").GetComponent<PlayerController>();
}
// Update is called once per frame
void Update()
{
healthHolder = playerController.PlayerHealth();
私は必要なものではありませんが、わかりましたが、PlayerControllerメソッドをPlayerControllerというスクリプトを持っているPlayerShipになる実際のオブジェクトを見つけるのではなく、PlayerControllerに呼び出しました。 – Phillipv20
'OnAwake'関数はどうですか?それは正しい? – Programmer