前提・実現したいこと
スクロールバーからアイテムが選択された時、
「アイテムが選択された」ことを観測するゲームマネージャーに
「true」を返したいのですがうまくいきません。
Findで名前を探す方法は、このアイテムの数が多く
処理が重くなりそうなので避けています。
スクリプト自体にエラーは出ないのですが、
実行してみると動きません。
発生している問題・エラーメッセージ
NullReferenceException: Object reference not set to an instance of an object
FumitureSelect.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at Assets/FumitureSelect.cs:42)
UnityEngine.EventSystems.ExecuteEvents.Execute
該当のソースコード
※ゲームマネージャー側のスクリプト(ScriptA)
public bool flag = false; //アイテムが選択中か
void Update() { if (flag == true)//選択中なら { Debug.Log(" Item Select"); }
※trueを渡す側(アイテム側)のスクリプト
//現在選択中か?
private ScriptA SCA;
void Start()
{
SCA = GetComponent<ScriptA>();
}
// クリック検知時、コールバックされる関数
public void OnPointerClick(PointerEventData eventData)
{
Debug.Log("clicked!");
SCA.flag=true; //←←ここで上記のエラーメッセージが出る ゲーム自体は動く
}
試したこと
bool型変数とintに変えてみる、ScriptA側に
trueを挿入するクラスを作ってそれを呼び出してみる⇨いずれも同じエラー
よろしくお願いします
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/28 01:01