这几天在做捕鱼达人游戏时发现,当鼠标点击UI时,炮台的子弹也会发射子弹,这样会影响用户体验。
EventSystem.current.IsPointerOverGameObject()方法,作用:判断鼠标是否点击在UI上。
if (Input.GetMouseButtonDown(0) && EventSystem.current.IsPointerOverGameObject()== false)
{
//生成子弹
}
背景图上,在Image组件上的有一个Raycast Type的复选框,只要我们把勾选去掉,就行了。
因此我推测EventSystem.current.IsPointerOverGameObject()方法的原理是,是根据UI上的Raycast Target的勾选来遍历,那些UI需要鼠标点击判断,那些不需要。