不要通过UIToolkit按钮

时间:2012-11-25 13:53:58

标签: unity3d prime31

我一直在玩UIToolkit,它真棒。虽然我的点击通过了按钮,但是当点击UI时,我的光线投射也会启动。有没有办法检查GUI上是否有点击/触摸?

编辑:我正在使用Prime31的UIToolkit

解决:

foreach (var touchable in _gui.touchableSprites) {
    if ( !touchable.hidden && touchable.hitTest(new Vector2(clickPos.x, Screen.height - clickPos.y)) ) return;
}

感谢。

1 个答案:

答案 0 :(得分:2)

假设您正在使用prime31的UIToolkit,请查看the UIToolkit.cs(lines 81-95) ) script作者将展示如何处理突出显示他的TouchableSprites的示例。执行MouseOver事件的功能can be adapted相同。我不确定作者自2011年以来是否添加了此功能,我有一段时间没有使用过UIToolkit。

或者,如果第一层命中为“UILayer”(UIToolkit的图层),则可以修改所有光线跟踪以返回。

我使用的第三种方法是创建一个全局GUI元素管理器,它存储所有GUI rects的列表。当我添加一个新的光线跟踪功能时,我调用我的管理器类来查看鼠标光标是否包含在任何GUI矩形中(有更复杂的部分合并重叠的部分),如果是,则跳过光线跟踪。