比如战斗场景,UI和3D场景同时都需要响应触摸事件,如果同时响应可能就会出现触摸UI的时候影响到了3D部分。
为了解决这个问题在判断3D响应之前要先判断手指是否点击在UI上。
以前NGUI的时候都是自己来发送射线判断,现在UGUI好了系统提供了更为简便的方法。
void Update(){ if (Input.GetMouseButtonDown(0) ) { Debug.Log(EventSystem.current.gameObject.name); if (EventSystem.current.IsPointerOverGameObject()) Debug.Log("当前触摸在UI上"); else Debug.Log("当前没有触摸在UI上"); } }
本来想写射线,但是发现原来已经有更好的办法了。感谢网络上的大大们嘿嘿。
联系客服