我一直在玩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;
}
感谢。
答案 0 :(得分:2)
假设您正在使用prime31的UIToolkit,请查看the UIToolkit.cs(lines 81-95) ) script作者将展示如何处理突出显示他的TouchableSprites的示例。执行MouseOver事件的功能can be adapted相同。我不确定作者自2011年以来是否添加了此功能,我有一段时间没有使用过UIToolkit。
或者,如果第一层命中为“UILayer”(UIToolkit的图层),则可以修改所有光线跟踪以返回。
我使用的第三种方法是创建一个全局GUI元素管理器,它存储所有GUI rects的列表。当我添加一个新的光线跟踪功能时,我调用我的管理器类来查看鼠标光标是否包含在任何GUI矩形中(有更复杂的部分合并重叠的部分),如果是,则跳过光线跟踪。