簡單分析 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