前提・実現したいこと
UnityおよびC#の初心者、初質問です。
Unityで「Unityの寺子屋」チャプター2の放置ゲームを作っています。
ドラッグでなぞったオブジェクト(徳)を消す機能を実装中に、以下の問題・エラーメッセージが発生しました。
発生している問題・エラーメッセージ
ドラッグでなぞったオブジェクトが消えず、代わりに以下のエラーメッセージが生成される。
NullReferenceException: Object reference not set to an instance of an object
OrbManager.TouchOrb () (at Assets/Scripts/OrbManager.cs:24)
UnityEngine.Events.InvokableCall.Invoke () (at /Users/builduser/buildslave/unity/build/Runtime/Export/UnityEvent.cs:166)
UnityEngine.Events.UnityEvent1[T0].Invoke (.T0 arg0) (at /Users/builduser/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:63) UnityEngine.EventSystems.EventTrigger.Execute (EventTriggerType id, UnityEngine.EventSystems.BaseEventData eventData) (at /Users/builduser/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/EventTrigger.cs:67) UnityEngine.EventSystems.EventTrigger.OnPointerEnter (UnityEngine.EventSystems.PointerEventData eventData) (at /Users/builduser/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/EventTrigger.cs:73) UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerEnterHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at /Users/builduser/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:22) UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerEnterHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction
1 functor) (at /Users/builduser/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:261)
以下、エラーの発生しているソースコードです。
using
1using System.Collections.Generic; 2using UnityEngine; 3 4public class OrbManager : MonoBehaviour { 5 6 private GameObject gameManager; 7 8 // Use this for initialization 9 void Start () { 10 gameManager = GameObject.Find ("GameMnager"); 11 } 12 13 // Update is called once per frame 14 void Update () { 15 16 } 17 18 public void TouthOrb () { 19 if (Input.GetMouseButton (0) == false) { 20 return; 21 } 22 23 gameManager.GetComponent<GameManager> ().GetOrb (); 24 Destroy (this.gameObject); 25 26 } 27} 28 29 30 31### 該当のソースコード 32 gameManager.GetComponent<GameManager> ().GetOrb (); 33 34 35 36### 試したこと、現在の状況 37●再起動 38●Prefabを選択した状態だと、なぜか上記のエラー起きるとの情報あったので、非選択状態でテストプレイしたが改善せず。 39 40TouthOrbの中に、参照されていないオブジェクトが存在しているらしいこと、変数がnullにならないようにすればいい、という情報にたどり着きましたが、nullにならない(参照している状態にする)ために何を行えばいいか分からず、途方に暮れています。 41 42具体的にどうすればいいのか(どの部分に、どういった理由で、どんなコードを記述すればいいか、もしくはコード外の作業なのか)が見当がつかない状態ですので、ご教授いただけますと幸いです。 43 44何とぞよろしくお願いします。 45 46 47 48 49### 補足情報(FW/ツールのバージョンなど) 50Unity 51Version 2018,2,5f1 Personal 52 53MacOS 54HighSierra Version10.13.6
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/29 08:34