我做了一个 Scrollview。当我滚动视图时,下面的场景也会响应。
如何使其仅在触摸 GUI 组件区域时响应 GUI 事件
我做了一个 Scrollview。当我滚动视图时,下面的场景也会响应。
如何使其仅在触摸 GUI 组件区域时响应 GUI 事件
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 的脚本,您可以从任何其他脚本调用该脚本进行检查。