1

我一直在玩 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;
}

谢谢。

4

1 回答 1

2

假设您正在使用 prime31 的 UIToolkit,请查看UIToolkit.cs(第 81-95 行) 脚本 作者的示例展示了如何处理高亮显示他的 TouchableSprites。相同的功能可以适用于执行 MouseOver 事件。我不确定作者是否从 2011 年开始添加此功能,我有一段时间没有使用 UIToolkit。

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

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

于 2012-11-25T21:20:39.330 回答