Unityのマウスイベントでクリック押しっぱなしの処理や、ドラッグアンドドロップの処理とかがいろいろ簡単にできますが、
特に自分がよくやるポップアップの実装を作ってみます
こんなの
見出しだけのテキスト書いて長い説明はポップアップでとかやるといいと思います
準備
必要なものは、
・オブジェクトの領域内にマウスが入った・出たの判定
・ポップアップの表示非表示
これらの組み合わせで実装できそうです
まずは、オブジェクトの領域内にマウスが侵入したかどうかの判定をします
PopUpTest
という名前でスクリプトを作りました
デフォルトのMonobehaviourのほかに、IPointerEnterHandler
, IPointerExitHandler
というのを継承させます
わからなくてもとりあえずその通り書いておいてください
エラーが出ているので解消します
上の名前空間に、using UnityEngine.EventSystems;
を追加しておきましょう
さらに、IPointerEnterHandler
にカーソルを合わせると
と出るので、考えられる修正内容を表示するをクリック
インターフェイスを実装します クリック
すると、勝手にコードを書いてくれてエラーもなくなります
中のthrow new System.NotImplementedException();
は消してしまって、
もうひとつの IPointerExitHandler
の方も同じようにインターフェイスを実装まで進めましょう
この時点で、このPopUpTestスクリプトをButtonやImageなどのUIオブジェクトにアタッチすると、マウスの侵入判定ができています
が、わかりやすく確かめるためにテキストで表示させるようにしましょう
unityエディタの方ではImageと、その子にTextを設置
PopUpTestスクリプトはImageにアタッチし、インスペクターのTextにヒエラルキーのTextをアタッチ
うまくいってるとこうなると思います
マウスの判定ができたので、あとはマウスが入ってきたときと出ていったときに、それぞれポップアップの表示非表示を書けば良いわけです
先にシーンの方を作ってみると、こんな感じでいいと思います
中に入れるコードは、
PopUpのオブジェクトをGameObjectで宣言して、SetActiveで制御すれば良いと思います
これで完成です
(動いてるのは一番最初のgifと同じなので割愛)