触摸GUI区域时只有gui-event响应?

时间:2013-01-17 07:24:03

标签: user-interface event-handling unity3d

我制作了一个Scrollview。当我滚动视图时,下面的场景也会响应。

如何使其仅在触摸GUI组件的区域时响应GUI事件

1 个答案:

答案 0 :(得分:0)

private float scroll_value;
private Rect vscroll_rect = new Rect(0,0,100,100);
void OnGUI () {
    scroll_value = GUI.VerticalScrollbar (vscroll_rect , scroll_value, 1.0f, 0.0f, 10.0f);
}
void Update() {
    // Cursor is inside verticalscroll rect, ignore it
    if (vscroll_rect.Contains(Input.mousePosition))return;
}

唯一的问题是,如果你在许多不同的脚本中有几个GUI元素,他们每个都需要测试Input.mouseCursor是否在GUI元素中。一个简单的方法是创建一个管理GUI rects的脚本,您可以从任何其他脚本调用它来检查。