【Unity】クリック箇所にuGUIがあるか判定する……そして……。
使用バージョン:Unity 2018.3.12f1
目次:
やりたい事
・クリック時に特定のuGUI以外だったら処理をさせない。
今回は赤枠のimage以外だったら処理させないようにします。
順序
①Raycastの結果を受け取るListを用意する
②PointerEventDataの変数にクリック時のマウス座標を入れる
③RaycastAllを使用する
最初、Physics2D.Raycast使おうと思ってましたが、
uGUIには使えないみたいですね(>_<)
使用方法
PointerEventData型の変数のpositionにマウスの座標を入れて、
RaycastAllの引数にPointerEventData型の変数とListを入れれば、
渡したListにRaycastにヒットした結果が入ってきます。
結果のListからgameObjectにアクセスできるから大体の処理は出来そう。
以下は個人的にやりたかった処理。
子オブジェクトがクリックされたかの確認というのは、
Board以下にImage以外にも動的に追加されるので、
Boardの子オブジェクトをforeachで回してます。
ちなみにthisはBoard。
おまけ
綺麗じゃないけどImage以外のところだったら処理しないようにはできたんだけどね!
学生の頃割とやってた書き方('ω')w