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