前提・実現したいこと
Unityで的あてゲームのようなものを作っています。ボールを発射してそれぞれの的に当てると点数が加算されてスコアが画面に出るようにしたいです。一通りのコードは何となく作れたのですが実行したところボールを発射したときに以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
NullReferenceException: Object reference not set to an instance of an object Ball.Update () (at Assets/Ball.cs:26)
該当のソースコード
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Ball : MonoBehaviour { GameObject pointText; int point = 0; public void Throw(Vector3 dir) { GetComponent<Rigidbody>().AddForce(dir); } // Start is called before the first frame update void Start() { pointText = GameObject.Find("Point"); Throw(new Vector3(0, 300, 1500)); } // Update is called once per frame void Update() { pointText.GetComponent<Text>().text = point.ToString(); } void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "Good Obj") { point+= 10; } if (other.gameObject.tag == "Bad Obj") { point+= 20; } } }
試したこと
それぞれのobjectにアタッチしてみた
補足情報(FW/ツールのバージョンなど)
Tagを使ってそれぞれの的に当たった時判別できるようにした。
Startメソッド内にある以下の処理で、正常に”pointText”が取得できていないのではないでしょうか。
「pointText = GameObject.Find("Point");」
ヒエラルキー上に、"Point"という名前のGameObject(Textのオブジェクト)は存在していますか?