這幾天在做捕魚達人遊戲時發現,當鼠標點擊UI時,炮臺的子彈也會發射子彈,這樣會影響用戶體驗。
EventSystem.current.IsPointerOverGameObject()方法,作用:判斷鼠標是否點擊在UI上。
if (Input.GetMouseButtonDown(0) && EventSystem.current.IsPointerOverGameObject()== false)
{
//生成子彈
}
背景圖上,在Image組件上的有一個Raycast Type的複選框,只要我們把勾選去掉,就行了。
因此我推測EventSystem.current.IsPointerOverGameObject()方法的原理是,是根據UI上的Raycast Target的勾選來遍歷,那些UI需要鼠標點擊判斷,那些不需要。