【Unity】UIパーツをクリックする【uGUI】
こんにちは、ぼちぼちゲーム作ってる電車君です。
今回は、UnityでuGUIのTextやImageなどのUIパーツをクリックする方法を解説します。
方法1. EventSystem.current.RaycastAllを使う
まず調べて出てきたのはこれでした。
PointerEventData pointerData = new PointerEventData(EventSystem.current) { pointerId = -1 };
pointerData.position = Input.mousePosition;
List<raycastresult> results = new List<raycastresult>();
EventSystem.current.RaycastAll(pointerData, results);
if (results.Count > 0)
print("!");
推測ですが、PointerEventDataという仮想のカーソルのようなものを作り、カーソルの位置を設定して、Rayを飛ばして判定するものですが、
以上のコードを書いてから、EventSystem.current関連を書くのと、
EventSystem.current関連を書いてから、以上のコードを書くのとで、動いたり動かなかったりしたのと、
あとは、一見どのような処理がされているのか分かりづらいので、使い勝手が悪いと思います。
方法2. Buttonを使う
これが一番カンタンだと思います。
UIパーツと同じオブジェクトにButtonコンポーネントを追加するだけで、クリックできるようになります。
僕はTextに使いましたが、Imageなどにも使える思います。
見た目もフォーカスしたときの色や、クリックするアニメーション?なども動作するので、非常に簡単です。
以上です。