Unity OnPointerClick 和 OnMouseDown以及双击实现

简单分析 OnPointerClick 和 OnMouseDown

实现双击的代码如下

using UnityEngine;
using UnityEngine.EventSystems;

public class TestDemo : MonoBehaviour, IPointerClickHandler
{
    private float endTime = 0;
    private void OnMouseDown() {
        float time = Time.realtimeSinceStartup;
        print("time " + time);
        if(endTime + 0.5 > time){
            print(" OnMouseDown shuangji");
        }
        endTime = time;
    }

    public void OnPointerClick(PointerEventData eventData)
    {
        print("click " + eventData.clickCount);
        if(eventData.clickCount == 2){
            print("OnPointerClick shuangji");
        }
    }
}

我在cube上和UI的image上都加上了这个脚本

但是发现点击Cube只会触发OnMouseDown而不会触发OnPointerClick

而UI Image反之

这是因为OnMouseDown触发 需要 

我再把collider禁用后Cube的OnMouseDown也不触发了

 

我在把EventSystem上的 Event System禁用后 Image也不会触发OnPointerClick了

 

结论 :

        OnMouseDown适用于3D Object 而OnPointerClick适用于2D UI

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章