(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!


長押しすると連続でメソッドを実行するボタン【Unity】【uGUI】


このエントリーをはてなブックマークに追加

この記事でのバージョン
Unity 5.3.4f1 Personal


はじめに

今回はタイトル通り、長押しすると連続でメソッドを実行するボタンの記事です。

例えばLvを上げるボタンなんかで使えます。


f:id:kan_kikuchi:20160711060700g:plain



EventTrigger

押した瞬間のイベントを取得したい!みたいな時に使えるのがEventTriggerです。

前回も使ったやつです。



EventTriggerは離した瞬間のイベントも取れるので、

そのイベントを使い、一定時間離されなければメソッドを実行するといった感じで実装します。


LongPressButton

ではでは、コードです。



このLongPressButtonをButtonが付いてるオブジェクトに追加し、


f:id:kan_kikuchi:20160706135119j:plain


以下の設定をすれば、使う事が出来ます。

  • Event()に実行したいメソッド
  • LongPressTimeで長押しと判定する時間
  • InvokeIntervalでメソッドを実行する間隔


ただログを表示するメソッドを設定した場合は以下のように感じに。


f:id:kan_kikuchi:20160706135841g:plain


EventTriggerからメソッドが実行されるので、実はButtonクラスがなくても動作します。

その場合、押した時にボタンの色は変わらなくなりますが。

ただし、その場合でもImageなどのRaycast Targetになるコンポーネントは必要です。