FC2ブログ
    08 «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.» 10

    ハルシオンシステムの気まま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.jp/tb.php/59-d41c2786
    この記事にトラックバックする(FC2ブログユーザー)