private void AddDragable(PixelDragable dragable, float defaultOpacity)
 {
     dragable.SmoothOpacity.ResetValue(0);
     dragable.DefaultOpacity = defaultOpacity;
     AddNestedObject(dragable, 3);
     AddFocusableButton(dragable);
 }
        private PixelDragable CreateDragable(Func <Vector2> positionProvider, Func <Vector2> sizeProvider, Action <ScreenButton, Vector2> draggingMethod, float opacity)
        {
            var dragable = new PixelDragable(Camera, positionProvider, sizeProvider, this);

            dragable.OnDragging += draggingMethod;
            AddDragable(dragable, opacity);

            return(dragable);
        }
        public PixelRectangle(Camera camera, Vector2 position, Vector2 pixelSize, MapGroup parent = null, string id = null)
            : base(camera, position, pixelSize * PixelOptions.PixelSize, parent, id)
        {
            #region Corners
            _dragableLeftTop  = CreateCornerDragable(() => GetDragableLeftTopPosition(BasicSize), DragableLeftTopOnDragging);
            _dragableLeftBot  = CreateCornerDragable(() => GetDragableLeftBotPosition(BasicSize), DragableLeftBotOnDragging);
            _dragableRightTop = CreateCornerDragable(() => GetDragableRightTopPosition(BasicSize), DragableRightTopOnDragging);
            _dragableRightBot = CreateCornerDragable(() => GetDragableRightBotPosition(BasicSize), DragableRightBotOnDragging);
            #endregion

            #region Sides
            _dragableTop   = CreateDragable(() => GetDragableTopPosition(BasicSize), () => HorizontalSideSize(BasicSize), DragableTop_OnDragging, DRAGABLE_SIDE_OPACITY);
            _dragableLeft  = CreateDragable(() => GetDragableLeftPosition(BasicSize), () => VerticalSideSize(BasicSize), DragableLeft_OnDragging, DRAGABLE_SIDE_OPACITY);
            _dragableBot   = CreateDragable(() => GetDragableBotPosition(BasicSize), () => HorizontalSideSize(BasicSize), DragableBot_OnDragging, DRAGABLE_SIDE_OPACITY);
            _dragableRight = CreateDragable(() => GetDragableRightPosition(BasicSize), () => VerticalSideSize(BasicSize), DragableRight_OnDragging, DRAGABLE_SIDE_OPACITY);
            #endregion
        }