Unity的IsPointerOverGameObject返回不一致

时间:2019-03-23 18:20:45

标签: unity3d

我注意到,如果UI后面有世界空间对象,那么在UI上单击鼠标也会触发Unity的int rowCount = xlib.getRowCount("Sheet1"); for (int i = 0; i<=rowCount;i++) { try { String compair1= xlib.getExcelData("Sheet1", i, 0); System.out.println(compair1); String compair2=xlib.getExcelData("Sheet2", i, 0); System.out.println(compair2); Assert.assertEquals(compair1, compair2); System.out.println("compared successfully"); } catch (Exception e) { continue; } } 和类似事件。

研究使我发现OnMouseDown,Unity文档对此解释得不太好。

根据说明,当指针位于 ui对象上时,它应该返回真,但这不是我的经验。

使用该参数时,在一个Collider2D上返回EventSystems.current.IsPointerOverGameObject(),在另一个上返回false,在UI对象上返回true

我不明白它用来确定何时显示真假的逻辑。它的名字不好,因为 everything 是一个“ GameObject”。

如果我能找出导致错误信息的原因,则可以对其进行修复。

否则,当有人单击UI元素中的任何位置时,我需要一种替代方法来忽略世界空间的点击。

编辑:看来true是更有价值的指标。当发生单击时,该值具有实际的UI对象,但不适用于非UI对象。它的值仅在点击时存在,因此仅在EventSystem.current.currentSelectedGameObject != nullOnMouseDown中有用。

0 个答案:

没有答案