07 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 09

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【Unity】NGUIでのロングタップ処理 

モンスラが好評です!ありがとうありがとう!
あと少しで1万DLいきまっす!!
現在は来年1,2月にリリースをしたいと思っている
RPGを開発中!RPG開発中!大事なことなので2回言いました。
これまた面白いものになりますので楽しみにしてください!

モンスラの新機能を考えながら新しいアプリのリリース!
はたまたiphoneにモンスラを移植するか・・・
何に手を付けたらいいのか悩んでいる坂内です。

さて、今日はNGUIにおけるロングタップについてです。
まぁ簡単なのでみなさんすでに実装されていると思いますが、
今回ロングタップを実装しようとして、なにか簡単にやる方法はないかと
ぐーぐる先生に聞いたのですが、なんも教えてもらえなかったので
適当に実装してみました。

手順は以下です。
NGUIでボタンつくりまーす
②スクリプト用意しまーっす。
③UIButtonだと、On Clickしかないため、UIButton Messageを用意しまーす。
④もいっこUIButton Messageを用意しまーっす。
終わり。

では順番に説明をば。
【1 ボタンつくりまーす】
 これはそのままですね、ボタンをNGUIのWigetWizardから作成します。

 適当な絵を用意したので、Labelは消しております。

 
【2 スクリプトを用意しまーっす】
 今回用意したスクリプトは以下になります。
 
using UnityEngine;
using System.Collections;

public class LongTap : MonoBehaviour {
float longTapDuration = 2.0f;
float lastTap;
bool tapFlg;

void OnTap(){
tapFlg = true;
lastTap = Time.realtimeSinceStartup;
}

void OnRelease(){
tapFlg = false;
}

void Update(){
if(tapFlg && Time.realtimeSinceStartup - lastTap > longTapDuration){
print("aaaaa");
tapFlg = false;
}
}

}

 はじめのlongTapDurationは、ロングタップの時間を指定しています、2秒ロングタップすれば
 ロングタップ時の処理を実行するってことっすね。
 lastTapは、タップを始めた時間を保存するやつっす。
 メソッドといえば、OnTapが押された時、OnReleaseは離された時の処理っす。
 Updateにて、「押されている、且つ押され始めてからlongTapDurationの時間が経った場合」の条件で
 print分を処理しています。
 この際、tapFlgをfalseにしないとずっと押されていると処理が行われてしまいまっす。
 
【3 UIButtonだと、On Clickしかないため、UIButton Messageを用意しまーす】
 ButtonにUIButton Messageを追加します。
 「Add Component」⇒「NGUI」⇒「Interaction」⇒「Button Message」で追加できます。
 追加したら、先ほどのスクリプトを設定しているオブジェクトを「Target」に設定し、
 「Trigger」をOnPressに変更し、「Function Name」に先ほどのスクリプトで作った
 OnTapにします。

 
【4 もいっこUIButton Messageを用意しまーっす】
 3と同じくUIButton Messageを追加します。
 追加したら先ほどと同じ感じで「Target」の設定を行います。
 「Trigger」はOnReleaseに変更し、「Function Name」にはOnReleaseを設定します。


これでおしまいっ!
いちおうこれでできましたが、もっと簡単な方法あったらおせーてくださいませっ!

ではっ ノシ
スポンサーサイト

Category: 開発日記(Unity)

Thread: 日記

Janre: 日記

Tag: Android  Unity  NGUI  タップ 
tb 0 : cm 0   

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://halcyonsystemblog.blog.fc2.com/tb.php/59-d41c2786
この記事にトラックバックする(FC2ブログユーザー)