UI Toolkitでダブルクリックを検知する

 実はClickEventclickCountがあるので、2以上で判定するだけです。

実際のプログラムは以下。一応ちゃんとUtils作りました。


Copy
using UnityEngine.UIElements;
public static class UIUtils
{
const int DOUBLE_CLICK = 2;
public static bool IsDoubleClick(ClickEvent clickEvent)
{
return clickEvent != null && clickEvent.clickCount >= DOUBLE_CLICK;
}
}

今回はボタンに設定しましたが、他も同様です。

Copy
using UnityEngine;
using UnityEngine.UIElements;
public class DoubleClick : MonoBehaviour
{
const string DOUBLE_CLICK_BUTTON_NAME = "double-click-button";
[SerializeField]
private UIDocument document;
void Awake()
{
var doubleClickButton = document.rootVisualElement.Q<Button>(DOUBLE_CLICK_BUTTON_NAME);
doubleClickButton.RegisterCallback<ClickEvent>(e => {
// ダブルクリック時
if (UIUtils.IsDoubleClick(e)) {
Debug.Log("ダブルクリック");
}
});
}
}


ちゃんとダブルクリックが検知できます。

コメント