ロバメモ - 素人のUnity覚書と奮闘記

素人のUnity覚書と奮闘記

ボタンをダブルクリック判定したい

やりたいこと

シングルクリックか、ダブルクリックかを判定して個別に処理したい。

コード

using System.Collections;
using UnityEngine;

public class MyButton : MonoBehaviour
{

    bool isClick;
    public void OnClick()
    {
        if (!isClick)
        {
            isClick = true;
            StartCoroutine(MeasureTime());
        }
        else
        {
            DoubleClick();
            isClick = false;
        }

    }

    IEnumerator MeasureTime()
    {
        var times = 0f;
        while (isClick)
        {
            times += Time.deltaTime;
            if (times < 0.5f)
            {
                yield return null;
            }
            else
            {
                isClick = false;
                SingleClick();
                yield break;
            }
        }
    }

    void SingleClick()
    {
        Debug.Log("Single");
    }

    void DoubleClick()
    {
        Debug.Log("Double");
    }

}

インスペクター設定

これをボタンのOnClickにアタッチして、OnClick()を設定する。
f:id:nico-taniku:20191226152122p:plain:w300

以上。