Unity で scroll view を作りその中にボタンをたくさん入れようと思いました。
しかし、そのボタンは50個くらいあるのでいちいちコピペするのは面倒なので、プレハブを利用してボタンをつくり、
それをソース上で増やして scroll view のなかに50個つっこみました。
紆余曲折あったものの、うまくいきました。50個もボタンが並んでうきうきしました。
しかし、ここからが問題でした。
親であるGameObjectのスクリプトから、どのボタンがタッチされたのか、判定することができません。
C#
1 // Update is called once per frame 2 void Update () 3 { 4 5 // 左クリックされた場所のオブジェクトを取得 6 if (Input.GetMouseButtonDown (0)) { 7 8 Debug.Log("TAP"); 9 10 Vector2 tapPoint = Camera.main.ScreenToWorldPoint (Input.mousePosition); 11 Collider2D collition2d = Physics2D.OverlapPoint (tapPoint); 12 13 Debug.Log ("tapPoint=" + tapPoint); 14 Debug.Log ("collition2d=" + collition2d); 15 16 if (collition2d) { 17 Debug.Log ("野望に近づいた" + collition2); 18 } 19 } 20 21 }
box collider 2d をボタンにつけて、タップするのですが、collition2dがとれないのです。nullなのです。
プレハブのボタンに直接スクリプトを埋め込む事も考えましたが、、、
なんかソースコードがあちこちにあるのが嫌なんです。できれば1シーンで1スクリプトファイルで終わらせたいんです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。