現在Unityでゲーム開発中です。
Hierarchy中のオブジェクトのスクリプトが持つ参照を取得しようとしたのですが、変数にはスクリプトの参照が入っているはずなのに取得することができません。
ゲーム中にインスペクターからこの変数を確認すると確かに参照が入っています。
どなたかこういった現象の原因に心当たりがある方アドバイスいただきたいです。
c#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class HintMarker : MonoBehaviour 6{ 7 public PuzzleParts PlacedPart = null; 8 9 // Start is called before the first frame update 10 void Start() 11 { 12 13 } 14 15 // Update is called once per frame 16 void Update() 17 { 18 19 } 20 21 public PuzzleParts PickPartUp() 22 { 23 var part = PlacedPart; 24 PlacedPart = null; 25 return part; 26 } 27 28 public PuzzleParts GetPlacedPart() 29 { 30 if (ReferenceEquals(PlacedPart, null)) 31 Debug.Log("何もパーツがセットされていません : " + PlacedPart, gameObject); 32 33 return PlacedPart; 34 } 35} 36
c#
1 //GetPlacedPArt()を呼び出している箇所 2 private void SetMarker(HintMarker marker) 3 { 4 target = marker.GetPlacedPart(); 5 isSelecting = !ReferenceEquals(target, null); 6 }
c#
1 //SetMarker()を呼び出している箇所 2 if (EventSystem.current.IsPointerOverGameObject(0) || EventSystem.current.IsPointerOverGameObject()) //UIをタッチしている場合は適用しない 3 return; 4 5 Ray rayBegan = Camera.main.ScreenPointToRay(TouchUtility.GetTouchPosition()); 6 RaycastHit hit; 7 if (!Physics.Raycast(rayBegan, out hit)) 8 return; 9 10 var marker = hit.transform.gameObject.GetComponent<HintMarker>(); 11 if (marker != null) 12 { 13 SetMarker(marker); 14 }
RayCastでヒントマーカーを持つオブジェクトを検知し、GetComponent()でHintMarkerを取得し、件のメソッドを呼び出しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/18 13:56
2020/10/19 00:13
2020/10/22 03:15