Densyakunのブログ

高校生プログラマの雑なブログです。ゲームを開発しています。

【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などにも使える思います。

見た目もフォーカスしたときの色や、クリックするアニメーション?なども動作するので、非常に簡単です。

f:id:Densyakun:20181023033917p:plain

f:id:Densyakun:20181023034003p:plain

 

 

 

以上です。