我注意到,如果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 != null
和OnMouseDown
中有用。