/*--------------------------------------------------------------------------------------------*/ 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; } }
/*--------------------------------------------------------------------------------------------*/ 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); }
/*--------------------------------------------------------------------------------------------*/ 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); }