【Unity】UIのボタンでクリックした瞬間にイベントを発生させたい

UIのボタンを設置した時、マウスの左ボタンを離した時にイベントが発生します
しから、例えば弾の発射ボタンなど、押した瞬間にイベントを実施したい時もあります

イメージ

EventTriggerで実現できます
トリガーはいくつかのパターンを使えますが、今回は、OnPointerDownイベント(クリックした時)を使います

動作イメージ

シーン構成

ボタンの作成

イベントトリガーコンポーネントの追加

イベント実行用のスクリプトを作成

イベントのコンポーネントへの登録

スクリプト

クリックされた時のイベントハンドラ(メソッド)を記述します
今回は、 クリックされたらOnPressメソッドが呼ばれるようにしてコンソールに表示させます

using UnityEngine;

public class EventTest : MonoBehaviour
{
    public void OnPress()
    {
        Debug.Log("クリック");
    }
}

参考

サポートされているイベント

Event System は多くのイベントをサポートしており、Input Module を書くことでカスタマイズできます。

イベントはインターフェースが提供する Standalone Input Module と Touch Input Module にサポートされており、インターフェースを実装することで MonoBehaviour 上に実装することができます。イベントを設定してある有効な Event System があれば、適切なタイミングで呼び出されます。

  • IPointerEnterHandler – OnPointerEnter – ポインターがオブジェクトに乗ったときに呼び出されます
  • IPointerExitHandler – OnPointerExit – ポインターがオブジェクトから離れたときに呼び出されます
  • IPointerDownHandler – OnPointerDown – ポインターがオブジェクトを押下したときに呼び出されます
  • IPointerUpHandler – OnPointerUp – ポインターを離したときに呼び出されます(ポインターが押下されているオブジェクト上で呼び出されます)
  • IPointerClickHandler – OnPointerClick – あるオブジェクト上でポインターを押下し、同一のオブジェクト上で離した際に呼び出されます
  • IInitializePotentialDragHandler – OnInitializePotentialDrag – ドラッグ対象が見つかったときに呼び出されます。値を初期化するのに使用することもできます
  • IBeginDragHandler – OnBeginDrag – ドラッグが始まる直前にドラッグ対象のオブジェクトで呼び出されます
  • IDragHandler – OnDrag – ドラッグ対象がドラッグされている間呼び出されます
  • IEndDragHandler – OnEndDrag – ドラッグが終了したときドラッグ対象オブジェクトで呼び出されます
  • IDropHandler – OnDrop – ドラッグを止めた場所にあるオブジェクト上で呼び出されます
  • IScrollHandler – OnScroll – マウスホイールスクロールをしたときに呼び出されます
  • IUpdateSelectedHandler – OnUpdateSelected – 選択中のオブジェクトで毎フレーム呼び出されます
  • ISelectHandler – OnSelect – オブジェクトが選択された瞬間そのオブジェクト上で呼び出されます
  • IDeselectHandler – OnDeselect – 選択中のオブジェクトで、選択状態が解除されたとき呼び出されます
  • IMoveHandler – OnMove – キー入力による移動イベント(左、右、上、下など)が起こったときに呼び出されます
  • ISubmitHandler – OnSubmit – サブミットボタンが押されたときに呼び出されます
  • ICancelHandler – OnCancel – キャンセルボタンが押されたときに呼び出されます

Unity

Posted by hidepon