Beispiel #1
0
            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));
            }