【发布时间】:2012-12-31 16:41:49
【问题描述】:
我做了一个滚动视图。当我滚动视图时,下面的场景也会响应。
如何让它只在触摸 GUI 组件区域时响应 GUI 事件
【问题讨论】:
标签: user-interface event-handling unity3d
我做了一个滚动视图。当我滚动视图时,下面的场景也会响应。
如何让它只在触摸 GUI 组件区域时响应 GUI 事件
【问题讨论】:
标签: user-interface event-handling unity3d
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 矩形的脚本,您可以从任何其他脚本调用该脚本进行检查。
【讨论】: