###前提・実現したいこと
現在Unity2Dにてデジタルカードゲームを制作しています。
Canvas->View->Handオブジェクト以下に手札の生成を行うスクリプトを作成しました。
生成されたカードをクリックした際に対象のカードの詳細画像を表示したいので、
まずは特定のオブジェクト(カード)がクリックされた際にクリックされた対象のオブジェクトの名前を
返すようなソースコードを作成しました。
作成したソースコードはCanvas外のGameControllerオブジェクトに追加しました。
※こちらを元に作成しました。http://qiita.com/yxuyxu/items/ffec547e9b93cfd2b99d
しかし、実行時複数のカードをクリックしても一つのカードしかログに表示されず、カード以外の場所をクリックしても一つのカードがクリックされたログしかでてきませんでした。
おそらく子オブジェクトにクリックしてアクセスする方法が間違っているのかなとは思います。
カードをクリックした際に対象のカード名(オブジェクト名)がログに表示され、カード以外をクリックした際には
何も反応しないようにしたいので、ご教示お願いします。
###該当のソースコード
C#
1using UnityEngine; 2 3public class ClickCard : MonoBehaviour 4{ 5 6 7 void Update() 8 { 9 if (Input.GetMouseButtonDown(0)) 10 { 11 Vector2 tapPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); 12 Collider2D collition2d = Physics2D.OverlapPoint(tapPoint); 13 if (collition2d) 14 { 15 RaycastHit2D hitObject = Physics2D.Raycast(tapPoint, -Vector2.up); 16 if (hitObject) 17 { 18 Debug.Log("hit object is " + hitObject.collider.gameObject.name); 19 } 20 } 21 } 22 } 23}
###画像
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/09 15:33