読者です 読者をやめる 読者になる 読者になる

(:3[kanのメモ帳]

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

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

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になるコンポーネントは必要です。