【问题标题】:When touch the region of GUI only gui-event respond?当触摸 GUI 区域时只有 gui-event 响应?
【发布时间】:2012-12-31 16:41:49
【问题描述】:

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

如何让它只在触摸 GUI 组件区域时响应 GUI 事件

【问题讨论】:

标签: user-interface event-handling unity3d


【解决方案1】:
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 矩形的脚本,您可以从任何其他脚本调用该脚本进行检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 2013-03-06
    • 1970-01-01
    相关资源
    最近更新 更多