この記事でのバージョン
Unity 5.3.4f1 Personal
はじめに
今回はタイトル通り、長押しすると連続でメソッドを実行するボタンの記事です。
例えばLvを上げるボタンなんかで使えます。
EventTrigger
押した瞬間のイベントを取得したい!みたいな時に使えるのがEventTriggerです。
前回も使ったやつです。
EventTriggerは離した瞬間のイベントも取れるので、
そのイベントを使い、一定時間離されなければメソッドを実行するといった感じで実装します。
LongPressButton
ではでは、コードです。
このLongPressButtonをButtonが付いてるオブジェクトに追加し、
以下の設定をすれば、使う事が出来ます。
- Event()に実行したいメソッド
- LongPressTimeで長押しと判定する時間
- InvokeIntervalでメソッドを実行する間隔
ただログを表示するメソッドを設定した場合は以下のように感じに。
EventTriggerからメソッドが実行されるので、実はButtonクラスがなくても動作します。
その場合、押した時にボタンの色は変わらなくなりますが。
ただし、その場合でもImageなどのRaycast Targetになるコンポーネントは必要です。