EventSystem.current.IsPointerOverGameObject()在MouseEnter事件中返回false

时间:2019-06-17 11:05:43

标签: c# unity3d

我遇到一个奇怪的问题,当鼠标和对象之间有任何NGUI涉及时,我必须阻止mouseEnter / Exit事件。因此,我正在使用

public void OnMouseEnter()
{
    if (!EventSystem.current.IsPointerOverGameObject())
    {
        renderer.material.color = highlighColour;
    }
}

但是EventSystem.current.IsPointerOverGameObject()始终为假。尽管相同的代码段可以正常运行,但Unity Canvas仍然可以正常工作。

1 个答案:

答案 0 :(得分:0)

我已经确定了问题,对于NGUI,您必须使用UICamera.isOverU

 public void OnMouseEnter()
    {

        //if (!EventSystem.current.IsPointerOverGameObject())
        if (!UICamera.isOverUI)
        {
            renderer.material.color = highlighColour;
        }
    }