protected override void Run(SkinIMGUIDrawer context, ScScrollView widget) { var rect = widget.GetRect(); var pos = widget.ScrollViewPostion; var contentsRect = widget.GetContentsRect(); var e = Event.current; if (rect.Contains(e.mousePosition)) { if (e.type == EventType.ScrollWheel) { pos += e.delta; e.Use(); } if (!context.IsDisableDrag() && e.type == EventType.MouseDrag) { #if UNITY_STANDALONE || UNITY_EDITOR pos += e.delta * new Vector2(-1f, -1f); #else pos += e.delta * new Vector2(-1f, 1f); #endif if (contentsRect.width <= rect.width) { pos.x = 0; } if (contentsRect.height <= rect.height) { pos.y = 0; } if (pos != Vector2.zero) { e.Use(); GUI.FocusControl(""); GUIUtility.hotControl = 0; } } } widget.ScrollViewPostion = pos; GUI.BeginClip(rect); GUI.BeginGroup(new Rect(widget.ScrollViewPostion * new Vector2(-1f, -1f) - contentsRect.position, contentsRect.size + contentsRect.position)); }