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

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