如何防止其他人比最顶级的游戏对象在堆叠的游戏对象中接收点击事件

时间:2016-04-25 17:29:44

标签: unity3d onclick gameobject

我有一个BoxCollider2D的对象,它位于一个BoxCollider的对象下面。 (详细信息是一个UI(我使用NGUI资产),BoxCollider位于GameObject之上且BoxCollider2D)。 UI对象具有实现OnClick()的脚本,GameObject具有实现OnMouseDown()的脚本。单击UI对象时,也可以单击GameObject中的事件。

我只是希望UI对象在彼此堆叠时触发事件。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

使用UnityEngine.EventSystems;包含在OnMouseDown()函数中,添加if (!EventSystem.current.IsPointerOverGameObject()),然后在if语句中放入鼠标时,将所有代码设置为运行。

using UnityEngine.EventSystems;
public void OnMouseDown()
{
 if (!EventSystem.current.IsPointerOverGameObject())
 {
  //Put all your code for your gameobject here
 }
}

这应该有用,但如果没有,请观看this视频了解其他方法。