简单分析 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