//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public virtual void Build(ArcState pArcState, SegmentSettings pSettings, float pAngle0, float pAngle1) { vArcState = pArcState; vSettings = pSettings; vAngle0 = pAngle0; vAngle1 = pAngle1; vMeshSteps = (int)Math.Round(Math.Max(2, (vAngle1-vAngle0)/Math.PI*60)); vInnerRadius = 0.17f; vDiameter = UiSelectRenderer.ArcCanvasThickness; //// vBackground = new GameObject("Background"); vBackground.transform.SetParent(gameObject.transform, false); vBackground.AddComponent<MeshFilter>(); vBackground.AddComponent<MeshRenderer>(); vBackground.renderer.sharedMaterial = new Material(Shader.Find("Unlit/AlphaSelfIllum")); vBackground.renderer.sharedMaterial.renderQueue -= 100; vBackground.renderer.sharedMaterial.color = Color.clear; BuildMesh(vBackground.GetComponent<MeshFilter>().mesh); //// var labelObj = new GameObject("Label"); labelObj.transform.SetParent(gameObject.transform, false); labelObj.transform.localPosition = new Vector3(0, 0, vInnerRadius); labelObj.transform.localScale = new Vector3(1, 1, (vArcState.IsLeft ? 1 : -1)); vLabel = labelObj.AddComponent<UiLabel>(); vLabel.IsLeft = vArcState.IsLeft; }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public void Awake() { vRootSettings = GameObject.Find("DemoEnvironment/MenuData") .GetComponent<HovercastCustomizationProvider>() .GetSegmentSettings(null); vHueSettings = new SegmentSettings(); vHueSlider = (NavItemSlider)gameObject.GetComponent<HovercastNavItem>().GetItem(); vHueSlider.OnValueChanged += HandleValueChanged; }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public override void Build(ArcState pArcState, SegmentState pSegState, float pArcAngle, SegmentSettings pSettings) { base.Build(pArcState, pSegState, pArcAngle, pSettings); vIcon = GameObject.CreatePrimitive(PrimitiveType.Quad); vIcon.name = "Icon"; vIcon.transform.SetParent(gameObject.transform, false); vIcon.renderer.sharedMaterial = new Material(Shader.Find("Unlit/AlphaSelfIllum")); vIcon.renderer.sharedMaterial.color = Color.clear; vIcon.renderer.sharedMaterial.mainTexture = GetIconTexture(); vIcon.transform.localRotation = vLabel.CanvasLocalRotation; }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public static SegmentSettings Fill(SegmentSettings pSrc, SegmentSettings pDest) { pDest.TextSize = pSrc.TextSize; pDest.TextColor = pSrc.TextColor; pDest.TextFont = pSrc.TextFont; pDest.ArrowIconColor = pSrc.ArrowIconColor; pDest.ToggleIconColor = pSrc.ToggleIconColor; pDest.BackgroundColor = pSrc.BackgroundColor; pDest.EdgeColor = pSrc.EdgeColor; pDest.HighlightColor = pSrc.HighlightColor; pDest.SelectionColor = pSrc.SelectionColor; pDest.SliderTrackColor = pSrc.SliderTrackColor; pDest.SliderFillColor = pSrc.SliderFillColor; pDest.SliderTickColor = pSrc.SliderTickColor; return pDest; }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public static SegmentSettings Fill(SegmentSettings pSrc, SegmentSettings pDest) { pDest.TextSize = pSrc.TextSize; pDest.TextColor = pSrc.TextColor; pDest.TextFont = pSrc.TextFont; pDest.ArrowIconColor = pSrc.ArrowIconColor; pDest.ToggleIconColor = pSrc.ToggleIconColor; pDest.BackgroundColor = pSrc.BackgroundColor; pDest.EdgeColor = pSrc.EdgeColor; pDest.HighlightColor = pSrc.HighlightColor; pDest.SelectionColor = pSrc.SelectionColor; pDest.SliderTrackColor = pSrc.SliderTrackColor; pDest.SliderFillColor = pSrc.SliderFillColor; pDest.SliderTickColor = pSrc.SliderTickColor; return(pDest); }
/*--------------------------------------------------------------------------------------------*/ public override SegmentSettings GetSettings() { if (InheritSettings) { return(null); } if (vSettings == null) { vSettings = new SegmentSettings(); vSettings.TextSize = TextSize; vSettings.TextColor = TextColor; vSettings.TextFont = TextFont; vSettings.BackgroundColor = BackgroundColor; } return(vSettings); }
/*--------------------------------------------------------------------------------------------*/ public override SegmentSettings GetSettings() { if ( vSettings == null ) { vSettings = new SegmentSettings(); vSettings.TextSize = TextSize; vSettings.TextColor = TextColor; vSettings.TextFont = TextFont; vSettings.ArrowIconColor = ArrowIconColor; vSettings.ToggleIconColor = ToggleIconColor; vSettings.BackgroundColor = BackgroundColor; vSettings.EdgeColor = EdgeColor; vSettings.HighlightColor = HighlightColor; vSettings.SelectionColor = SelectionColor; vSettings.SliderTrackColor = SliderTrackColor; vSettings.SliderFillColor = SliderFillColor; vSettings.SliderTickColor = SliderTickColor; } return vSettings; }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public virtual void Build(ArcState pArcState, SegmentState pSegState, float pArcAngle, SegmentSettings pSettings) { vArcState = pArcState; vSegState = pSegState; vSettings = pSettings; //// vSlice = new UiSlice(gameObject); vSlice.Resize(pArcAngle); //// var labelObj = new GameObject("Label"); labelObj.transform.SetParent(gameObject.transform, false); labelObj.transform.localPosition = new Vector3(0, 0, 1); labelObj.transform.localScale = new Vector3(1, 1, (vArcState.IsLeft ? 1 : -1)); vLabel = labelObj.AddComponent<UiLabel>(); vLabel.IsLeft = vArcState.IsLeft; }
/*--------------------------------------------------------------------------------------------*/ public override SegmentSettings GetSettings() { if (vSettings == null) { vSettings = new SegmentSettings(); vSettings.TextSize = TextSize; vSettings.TextColor = TextColor; vSettings.TextFont = TextFont; vSettings.ArrowIconColor = ArrowIconColor; vSettings.ToggleIconColor = ToggleIconColor; vSettings.BackgroundColor = BackgroundColor; vSettings.EdgeColor = EdgeColor; vSettings.HighlightColor = HighlightColor; vSettings.SelectionColor = SelectionColor; vSettings.SliderTrackColor = SliderTrackColor; vSettings.SliderFillColor = SliderFillColor; vSettings.SliderTickColor = SliderTickColor; } return(vSettings); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public virtual void Build(ArcState pArcState, SegmentState pSegState, float pArcAngle, SegmentSettings pSettings) { vArcState = pArcState; vSegState = pSegState; vAngle0 = -pArcAngle/2f+UiSlice.AngleInset; vAngle1 = pArcAngle/2f-UiSlice.AngleInset; vSettings = pSettings; vNavSlider = (NavItemSlider)vSegState.NavItem; const float pi = (float)Math.PI; const float radInner = 1.04f; const float radOuter = 1.46f; vGrabArcHalf = pi/80f; vSlideDegree0 = (vAngle0+vGrabArcHalf)/pi*180; vSlideDegrees = (vAngle1-vAngle0-vGrabArcHalf*2)/pi*180; //// vHiddenSlice = new UiSlice(gameObject, true); vHiddenSlice.Resize(pArcAngle); vHiddenSlice.UpdateBackground(Color.clear); vTrackA = new UiSlice(gameObject, true, "TrackA", radInner, radOuter); vTrackB = new UiSlice(gameObject, true, "TrackB", radInner, radOuter); vFillA = new UiSlice(gameObject, true, "FillA", radInner, radOuter); vFillB = new UiSlice(gameObject, true, "FillB", radInner, radOuter); //// vTickMat = new Material(Shader.Find("Unlit/AlphaSelfIllum")); vTickMat.renderQueue -= 400; vTickMat.color = Color.clear; if ( vNavSlider.Ticks > 1 ) { Vector3 quadScale = new Vector3(UiSlice.AngleInset*2, 0.36f, 0.1f); float percPerTick = 1/(float)(vNavSlider.Ticks-1); vTicks = new GameObject[vNavSlider.Ticks]; for ( int i = 0 ; i < vNavSlider.Ticks ; ++i ) { var tick = new GameObject("Tick"+i); tick.transform.SetParent(gameObject.transform, false); tick.transform.localRotation = Quaternion.AngleAxis( vSlideDegree0+vSlideDegrees*i*percPerTick, Vector3.up); vTicks[i] = tick; var quad = GameObject.CreatePrimitive(PrimitiveType.Quad); quad.renderer.sharedMaterial = vTickMat; quad.transform.SetParent(tick.transform, false); quad.transform.localPosition = new Vector3(0, 0, 1.25f); quad.transform.localRotation = Quaternion.FromToRotation(Vector3.back, Vector3.down); quad.transform.localScale = quadScale; } } //// vGrabHold = new GameObject("GrabHold"); vGrabHold.transform.SetParent(gameObject.transform, false); var grabObj = new GameObject("Grab"); grabObj.transform.SetParent(vGrabHold.transform, false); vGrab = grabObj.AddComponent<UiSliderGrabRenderer>(); vGrab.Build(vArcState, vSegState, vGrabArcHalf*2, pSettings); //// vHoverHold = new GameObject("HoverHold"); vHoverHold.transform.SetParent(gameObject.transform, false); var hoverObj = new GameObject("Hover"); hoverObj.transform.SetParent(vHoverHold.transform, false); vHover = new UiSlice(hoverObj, false, "Hover"); }