//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public virtual void UpdateSegments(DisplayUtil.TrackSegment[] pSegments, DisplayUtil.TrackSegment[] pCuts, float pHeight) { DisplayUtil.TrackSegment[] slices = DisplayUtil.SplitTrackSegments(pSegments, pCuts); foreach (UiHoverMeshRectBg bg in vAllBgs) { bg.Show(false); } int trackI = 0; int fillI = 0; foreach (DisplayUtil.TrackSegment slice in slices) { UiHoverMeshRectBg bg; if (slice.IsFill) { bg = vFills[fillI++]; } else { bg = vTracks[trackI++]; } float width = slice.EndValue - slice.StartValue; float zeroShiftW = 0; float zeroShiftX = 0; if (slice.IsZeroAtStart == true) { zeroShiftW = UiHoverMeshRect.SizeInset * 2; zeroShiftX = -zeroShiftW; } else if (slice.IsZeroAtStart == false) { zeroShiftW = UiHoverMeshRect.SizeInset * 2; } width += zeroShiftW; bg.Show(true); bg.UpdateSize(width, pHeight); bg.Background.transform.localPosition = Vector3.right * (slice.StartValue + width / 2 + zeroShiftX); } }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public virtual void UpdateSegments(ReadOnlyCollection <DisplayUtil.TrackSegment> pSegments, ReadOnlyCollection <DisplayUtil.TrackSegment> pCuts, float pRadiusInner, float pRadiusOuter) { DisplayUtil.SplitTrackSegments(pSegments, pCuts, vSlices); foreach (UiHoverMeshSlice bg in vAllBgs) { bg.Show(false); } int trackI = 0; int fillI = 0; foreach (DisplayUtil.TrackSegment slice in vSlices) { UiHoverMeshSlice bg; if (slice.IsFill) { bg = vFills[fillI++]; } else { bg = vTracks[trackI++]; } float angle0 = slice.StartValue; float angle1 = slice.EndValue; if (slice.IsZeroAtStart == true) { angle0 -= UiHoverMeshSlice.AngleInset * 2; } else if (slice.IsZeroAtStart == false) { angle1 += UiHoverMeshSlice.AngleInset * 2; } bg.Show(true); bg.UpdateSize(pRadiusInner, pRadiusOuter, angle0, angle1); } }