//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public virtual void Build(ArcState pArcState, float pAngle0, float pAngle1) { vArcState = pArcState; 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 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 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 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 virtual void Build(ArcState pArcState, ArcSegmentState pSegState, float pArcAngle, ArcSegmentSettings pSettings) { vArcState = pArcState; vSegState = pSegState; vAngle0 = -pArcAngle / 2f + AngleInset; vAngle1 = pArcAngle / 2f - AngleInset; vSettings = pSettings; vMeshSteps = (int)Math.Round(Math.Max(2, (vAngle1 - vAngle0) / Math.PI * 60)); //// 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 -= 300; vBackground.renderer.sharedMaterial.color = Color.clear; vEdge = new GameObject("Edge"); vEdge.transform.SetParent(gameObject.transform, false); vEdge.AddComponent <MeshFilter>(); vEdge.AddComponent <MeshRenderer>(); vEdge.renderer.sharedMaterial = new Material(Shader.Find("Unlit/AlphaSelfIllum")); vEdge.renderer.sharedMaterial.renderQueue -= 300; vEdge.renderer.sharedMaterial.color = Color.clear; vHighlight = new GameObject("Highlight"); vHighlight.transform.SetParent(gameObject.transform, false); vHighlight.AddComponent <MeshFilter>(); vHighlight.AddComponent <MeshRenderer>(); vHighlight.renderer.sharedMaterial = new Material(Shader.Find("Unlit/AlphaSelfIllum")); vHighlight.renderer.sharedMaterial.renderQueue -= 200; vHighlight.renderer.sharedMaterial.color = Color.clear; vSelect = new GameObject("Select"); vSelect.transform.SetParent(gameObject.transform, false); vSelect.AddComponent <MeshFilter>(); vSelect.AddComponent <MeshRenderer>(); vSelect.renderer.sharedMaterial = new Material(Shader.Find("Unlit/AlphaSelfIllum")); vSelect.renderer.sharedMaterial.renderQueue -= 10; vSelect.renderer.sharedMaterial.color = Color.clear; //// Mesh bgMesh = vBackground.GetComponent <MeshFilter>().mesh; BuildMesh(bgMesh, 1); vSelectionPoints = new List <Vector3>(); for (int i = 1; i < bgMesh.vertices.Length; i += 2) { vSelectionPoints.Add(bgMesh.vertices[i]); } MeshUtil.BuildRingMesh(vEdge.GetComponent <MeshFilter>().mesh, 0.99f, 1.0f, vAngle0, vAngle1, vMeshSteps); //// 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; }