예제 #1
0
        /*--------------------------------------------------------------------------------------------*/
        private void UpdateSliderSettings(HoverItem pHoverItem, HoverItemHighlightState pHighState)
        {
            HoverItemDataSlider data = (HoverItemDataSlider)pHoverItem.Data;

            HoverItemHighlightState.Highlight?high = pHighState.NearestHighlight;
            float highProg  = pHighState.MaxHighlightProgress;
            bool  isNearest = pHighState.IsNearestAcrossAllItemsForAnyCursor;

            SliderRenderer.Controllers.Set(HoverRendererSlider.JumpValueName, this);
            SliderRenderer.Controllers.Set(HoverRendererSlider.ShowButtonEdgesName, this);

            SliderRenderer.ShowButtonEdges = (isNearest && highProg > 0);

            if (high == null || highProg <= 0 || !isNearest)
            {
                data.HoverValue          = null;
                SliderRenderer.JumpValue = -1;
                return;
            }

            float value = SliderRenderer.GetValueViaNearestWorldPosition(high.Value.NearestWorldPos);

            data.HoverValue = value;

            float snapValue = (float)data.SnappedHoverValue;
            //float easePower = (1-high.Value.Progress)*5+1; //gets "snappier" as you pull away
            float showValue = DisplayUtil.GetEasedValue(data.Snaps, value, snapValue, 3);

            SliderRenderer.JumpValue = showValue;

            if (data.IsStickySelected)
            {
                data.Value = value;
                SliderRenderer.Controllers.Set(HoverRendererSlider.HandleValueName, this);
                SliderRenderer.HandleValue = showValue;
            }
        }
예제 #2
0
        /*--------------------------------------------------------------------------------------------*/
        public virtual void Update()
        {
            vMainAlpha = UiItemSelectRenderer.GetArcAlpha(vMenuState) * vAnimAlpha;

            if (!vSliderItem.IsEnabled || !vSliderItem.IsAncestryEnabled)
            {
                vMainAlpha *= 0.333f;
            }

            const int easePower = 3;
            int       snaps     = vSliderItem.Snaps;
            float     easedVal  = DisplayUtil.GetEasedValue(
                snaps, vSliderItem.Value, vSliderItem.SnappedValue, easePower);
            float easedHover = easedVal;
            float hoverArc   = 0;

            if (vSliderItem.HoverValue != null)
            {
                easedHover = DisplayUtil.GetEasedValue(snaps, (float)vSliderItem.HoverValue,
                                                       (float)vSliderItem.HoverSnappedValue, easePower);
            }

            Color colTrack = vSettings.SliderTrackColor;
            Color colFill  = vSettings.SliderFillColor;
            Color colTick  = vSettings.SliderTickColor;

            colTrack.a *= vMainAlpha;
            colFill.a  *= vMainAlpha;
            colTick.a  *= vMainAlpha;

            vTrack.SetColors(colTrack, colFill);

            if (vTickMeshBuilder != null)
            {
                vTickMeshBuilder.CommitColors(colTick);
            }

            ////

            float slideDeg = vSlideDegree0 + vSlideDegrees * easedVal;

            vGrabHold.transform.localRotation = Quaternion.AngleAxis(slideDeg, Vector3.up);

            if (vSliderItem.HoverValue != null)
            {
                slideDeg = vSlideDegree0 + vSlideDegrees * easedHover;
                vHoverHold.transform.localRotation = Quaternion.AngleAxis(slideDeg, Vector3.up);

                float high   = vItemState.MaxHighlightProgress;
                float select = 1 - (float)Math.Pow(1 - vItemState.SelectionProgress, 1.5f);

                Color colBg   = vSettings.BackgroundColor;
                Color colHigh = vSettings.HighlightColor;
                Color colSel  = vSettings.SelectionColor;

                colBg.a   *= high * vMainAlpha;
                colHigh.a *= high * vMainAlpha;
                colSel.a  *= select * vMainAlpha;

                vHover.UpdateBackground(colBg);
                vHover.UpdateHighlight(colHigh, high);
                vHover.UpdateSelect(colSel, select);

                hoverArc = vGrabArc * high * HoverBarRelW;
            }

            UpdateMeshes(easedVal, easedHover, hoverArc);
        }
예제 #3
0
        /*--------------------------------------------------------------------------------------------*/
        public virtual void Update()
        {
            vMainAlpha = vPanelState.DisplayStrength * vLayoutState.DisplayStrength;

            if (!vSliderItem.IsEnabled || !vSliderItem.IsAncestryEnabled)
            {
                vMainAlpha *= 0.333f;
            }

            const int easePower = 3;
            int       snaps     = vSliderItem.Snaps;
            float     easedVal  = DisplayUtil.GetEasedValue(
                snaps, vSliderItem.Value, vSliderItem.SnappedValue, easePower);
            float easedHover = easedVal;
            float hoverW     = 0;

            if (vSliderItem.HoverValue != null)
            {
                easedHover = DisplayUtil.GetEasedValue(snaps, (float)vSliderItem.HoverValue,
                                                       (float)vSliderItem.HoverSnappedValue, easePower);
            }

            Color colTrack = vSettings.SliderTrackColor;
            Color colFill  = vSettings.SliderFillColor;
            Color colTick  = vSettings.SliderTickColor;

            colTrack.a *= vMainAlpha;
            colFill.a  *= vMainAlpha;
            colTick.a  *= vMainAlpha;

            vTrack.SetColors(colTrack, colFill);

            if (vTickMeshBuilder != null)
            {
                vTickMeshBuilder.CommitColors(colTick);
            }

            ////

            vGrabHold.transform.localPosition = new Vector3(vSlideX0 + vSlideW * easedVal, 0, 0);

            if (vSliderItem.HoverValue != null)
            {
                vHoverHold.transform.localPosition = new Vector3(vSlideX0 + vSlideW * easedHover, 0, 0);

                float high   = vItemState.MaxHighlightProgress;
                float select = 1 - (float)Math.Pow(1 - vItemState.SelectionProgress, 1.5f);

                Color colBg   = vSettings.BackgroundColor;
                Color colHigh = vSettings.HighlightColor;
                Color colSel  = vSettings.SelectionColor;

                colBg.a   *= high * vMainAlpha;
                colHigh.a *= high * vMainAlpha;
                colSel.a  *= select * vMainAlpha;

                vHover.UpdateBackground(colBg);
                vHover.UpdateHighlight(colHigh, high);
                vHover.UpdateSelect(colSel, select);

                hoverW = vGrabW * high * HoverBarRelW;
            }

            UpdateMeshes(easedVal, easedHover, hoverW);
        }