実現したいこと
親オブジェクトについている矢印をタップすると、その方向に親オブジェクトを動かしたい。
前提
オブジェクトの子として、左向き矢印がついたオブジェクトがあります。
この矢印をタップすることで、親オブジェクトを左向きに動かしたいです。
コライダーなどは全て問題なくついています。
発生している問題・エラーメッセージ
エラーメッセージはなし
子オブジェクトをタップすると、アタッチしている子オブジェクトが親オブジェクトに切り替わってしまう。
※詳細はソースコードの下に記載しました。
該当のソースコード
using System.Collections; using System.Collections.Generic; using UnityEngine; public class KYajirusiLeft : MonoBehaviour { [SerializeField] GameObject YajirusiLeft; public int LeftCounter; private GameObject _parent; // Start is called before the first frame update void Start() { _parent = transform.root.gameObject; } // Update is called once per frame public void Update() { if (Input.GetMouseButtonDown(0)) { Debug.Log("①"); YajirusiLeft = null; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit2D hitSprite = Physics2D.Raycast((Vector2)ray.origin, (Vector2)ray.direction); if (hitSprite == true) { Debug.Log("②"); YajirusiLeft = hitSprite.transform.gameObject; if (YajirusiLeft.tag == "YajirusiLeft") { Debug.Log("③"); YajirusiLeft.SetActive(false); _parent.transform.position -= new Vector3(1.5f, 0, 0); LeftCounter++; Debug.Log(LeftCounter); } } } } }
以上のようなソースコードを、矢印にアタッチしています。
デバッグで、①、②までは行くのですが、③まで行かず、インスペクターウィンドウを見ながら試していたところ、矢印をタップするまでは、
[SerializeField] GameObject YajirusiLeft;
のYajirusiLeftに、子オブジェクトである左向き矢印が格納されているのですが、
左向き矢印をタップした瞬間、YajirusiLeftに格納されているのが、親オブジェクトに切り替わってしまっているようでした。
原因がわからず、質問させていただきました。
なぜ切り替わってしまうのか、切り替わらないようにするにはどうすればよいのか、アドバイスをいただきたいです。
0 コメント