###内容
ゲームオーバーになったら自分のスコアを表示させるというスプリクトを作っていて、「GameObject.Find」や「GetComponent」は最初のStart関数内でキャッシュさせたほうが処理が軽くなるということを知り、3つのスプリクトを同じように変更したところなぜか1つのスプリクトにだけNullエラーが出てきているのですが、問題なく動作するのです。
###エラーコード
NullReferenceException: Object reference not set to an instance of an object
###ソースコード
↓唯一エラーが出てきているスプリクト(一部省略)
Yourscore
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class Yourscore : MonoBehaviour 7{ 8 //省略 9 private Text t;//←privateにしている 10 void Start() 11 { 12 t = GameObject.Find("YourScore").GetComponent<Text>();//←ここにエラー 13 } 14 //省略 15}
↓ほかの2つのスプリクト(一部省略)
TimerMa
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class TimerMa : MonoBehaviour 7{ 8 //省略 9 private Text t;//←privateにしている 10 void Start() 11 { 12 t = GameObject.Find("Timer").GetComponent<Text>(); 13 } 14 //省略 15}
ScoreMa
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5public class ScoreMa : MonoBehaviour 6{ 7 //省略 8 private Text t;//←privateにしている 9 void Start() 10 { 11 t = GameObject.Find("Score").GetComponent<Text>(); 12 } 13 //省略 14}
###調べたこと
オブジェクトの参照が設定されていないとエラーで示されていますが、そもそもprivateにしているため設定しようにもできないと困っています...
###開発環境
Windows10 Pro
Unity 2021.2.0b8
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。