要先判断手指触摸到了方块,然后做后续的拾取操作
void Update()
{
if (Input.GetMouseButtonDown(0)||(Input.touchCount >0 && Input.GetTouch(0).phase == TouchPhase.Began))
{
#if IPHONE || ANDROID
if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId))
#else
if (EventSystem.current.IsPointerOverGameObject())
#endif
Debug.Log("当前触摸在UI上");
else
Debug.Log("当前没有触摸在UI上");
}
}
上面再update里面判断是一种方式,我们不使用在update里面这种方式,想使用注册事件并监听的方式,例如鼠标点击事件有OnMouseDown,那么手指触摸事件是什么了,我们项目是用Xlua写界面,我写了一个方法判断点击到了物体(射线检测)然后向服务器发送拾取的消息,但是不知道在哪触发这个方法?
像做拾取这种操作,一般怎么做,不再update里面判断
这里的手指触摸事件,unity没有提供的,需要自己做检测触发的,unity也支持提供了基本的事件,我们在这些事件上进行扩展
开发自定义自己的事件