今天在做一个游戏时出现了个小问题,当我点击的地方是空地时,需要响应一个事件,而当我点击UI上切换状态时,并不需要响应这个事件,查了一下,Unity有一个方法可以检测鼠标是否点击在UGUI 的UI上,在此记录自用。
EventSystem.current.IsPointerOverGameObject()
此方法返回一个bool类型的值,当点击在UI上时,则返回true,否则返回 false。使用此方法需要引入UnityEngine.EventSystems的命名空间。
完整操作:
//当按下鼠标左键,且不是点击在UI上时,则响应某事件
if (Input.GetMouseButtonDown(0) && (!EventSystem.current.IsPointerOverGameObject()))
{
Debug.log("Do it!");
}