////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        private void UpdateTrackShape(HoverShapeRect pShapeRect, HoverRendererSlider pRendSlider)
        {
            HoverShapeRect trackShapeRect = (HoverShapeRect)pRendSlider.Track.GetShape();

            trackShapeRect.Controllers.Set(HoverShapeRect.SizeXName, this);
            trackShapeRect.Controllers.Set(HoverShapeRect.SizeYName, this);

            trackShapeRect.SizeX = pShapeRect.SizeX;
            trackShapeRect.SizeY = pShapeRect.SizeY;
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        private void UpdateTrackShape(HoverShapeArc pShapeArc, HoverRendererSlider pRendSlider)
        {
            HoverShapeArc trackShapeArc = (HoverShapeArc)pRendSlider.Track.GetShape();

            trackShapeArc.Controllers.Set(HoverShapeArc.OuterRadiusName, this);
            trackShapeArc.Controllers.Set(HoverShapeArc.InnerRadiusName, this);
            trackShapeArc.Controllers.Set(HoverShapeArc.ArcDegreesName, this);

            trackShapeArc.OuterRadius = pShapeArc.OuterRadius;
            trackShapeArc.InnerRadius = pShapeArc.InnerRadius;
            trackShapeArc.ArcDegrees = pShapeArc.ArcDegrees;
        }
        /*--------------------------------------------------------------------------------------------*/
        private void UpdateButtonPositions(HoverRendererSlider pRendSlider)
        {
            HoverRendererSliderSegments segs = gameObject.GetComponent<HoverRendererSliderSegments>();

            for ( int i = 0 ; i < segs.SegmentInfoList.Count ; i++ ) {
                SliderUtil.SegmentInfo segInfo = segs.SegmentInfoList[i];
                bool isHandle = (segInfo.Type == SliderUtil.SegmentType.Handle);
                bool isJump = (segInfo.Type == SliderUtil.SegmentType.Jump);

                if ( !isHandle && !isJump ) {
                    continue;
                }

                HoverRendererButton button = (isHandle ?
                    pRendSlider.HandleButton : pRendSlider.JumpButton);

                button.Controllers.Set(SettingsControllerMap.TransformLocalPosition+".y", this);

                Vector3 buttonLocalPos = button.transform.localPosition;
                buttonLocalPos.y = (segInfo.StartPosition+segInfo.EndPosition)/2;
                button.transform.localPosition = buttonLocalPos;
            }
        }
        /*--------------------------------------------------------------------------------------------*/
        private void TryRebuildWithItemType(HoverItem.HoverItemType pType)
        {
            if ( pType == HoverItem.HoverItemType.Slider ) {
                Controllers.Set(ButtonRendererName, this);
                Controllers.Unset(SliderRendererName, this);

                RendererUtil.DestroyRenderer(ButtonRenderer);
                ButtonRenderer = null;
                SliderRenderer = (SliderRenderer ?? FindOrBuildSlider());
                IsButtonRendererType = false;
            }
            else {
                Controllers.Set(SliderRendererName, this);
                Controllers.Unset(ButtonRendererName, this);

                RendererUtil.DestroyRenderer(SliderRenderer);
                SliderRenderer = null;
                ButtonRenderer = (ButtonRenderer ?? FindOrBuildButton());
                IsButtonRendererType = true;
            }
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        private void DestroyRenderersIfNecessary()
        {
            if ( ClickToRebuildRenderer || ButtonRendererPrefab != vPrevButtonPrefab ) {
                vPrevButtonPrefab = ButtonRendererPrefab;
                RendererUtil.DestroyRenderer(ButtonRenderer);
                ButtonRenderer = null;
            }

            if ( ClickToRebuildRenderer || SliderRendererPrefab != vPrevSliderPrefab ) {
                vPrevSliderPrefab = SliderRendererPrefab;
                RendererUtil.DestroyRenderer(SliderRenderer);
                SliderRenderer = null;
            }

            ClickToRebuildRenderer = false;
        }