今天在做一個遊戲時出現了個小問題,當我點擊的地方是空地時,需要響應一個事件,而當我點擊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!");
}