public static void CreatePieSliceNormal(float radial, int total, int colorID) { var radialOne = radial - (360f / total / 2f); var radialTwo = radial + (360f / total / 2f); var startVectorLeft = RadialToCoordinate(radialOne, 0); var startVectorRight = RadialToCoordinate(radialTwo, 0); var endVectorLeft = RadialToCoordinate(radialOne, 200); var endVectorRight = RadialToCoordinate(radialTwo, 200); VLiner.CreateDottedLine(startVectorLeft, endVectorLeft); VLiner.CreateDottedLine(startVectorRight, endVectorRight); //var backgroundColorSlice = new GameObject(); var backgroundColorSlice = GameObject.CreatePrimitive(PrimitiveType.Plane); var mat = (Material)Resources.Load("slice", typeof(Material)); //backgroundColorSlice.AddComponent(typeof(MeshRenderer)); //backgroundColorSlice.renderer.material = mat; backgroundColorSlice.transform.localPosition = new Vector3(0, 0, 20); Vector2[] vertices2D = new Vector2[] { new Vector2(), endVectorLeft, endVectorRight }; // Use the triangulator to get indices for creating triangles Triangulator tr = new Triangulator(vertices2D); int[] indices = tr.Triangulate(); // Create the Vector3 vertices Vector3[] vertices = new Vector3[vertices2D.Length]; for (int i = 0; i < vertices.Length; i++) { vertices[i] = new Vector3(vertices2D[i].x, vertices2D[i].y, 0); } // Create the mesh Mesh msh = new Mesh(); msh.vertices = vertices; msh.triangles = indices; msh.RecalculateNormals(); msh.RecalculateBounds(); // Set up game object with mesh; backgroundColorSlice.AddComponent(typeof(MeshRenderer)); MeshFilter filter = backgroundColorSlice.GetComponent(typeof(MeshFilter)) as MeshFilter; filter.mesh = msh; filter.renderer.material = mat; backgroundColorSlice.renderer.material.color = ColorID.DefaultBackgroundColor[colorID]; //new Color(250f/255f,190f/255f,192f/255f); }
void Start() { //DummyObjects[DummyObjects.Length - 1].InitializeDual(ColorID.Purple); int randomStart = Random.Range(10, 340); bool oneDual = false; bool twoDual = false; int previousColor = -1; int delay = 0; int i; for (i = randomStart; i < randomStart + 319; i += 360 / dumbNumberOfToggles) { if (oneDual) { oneDual = false; var dualObject = (GameObject)Instantiate(prefabNormal); int dualColor; dualColor = ColorID.Green; dualObject.InitializeDual(dualColor, i, TogglePosition.Closed); PieSlice.CreatePaintSliceNormal(i, 360f / dumbNumberOfToggles, ColorID.Green, delay / 2f); continue; } if (!oneDual && twoDual) { twoDual = false; var dualObject = (GameObject)Instantiate(prefabNormal); int dualColor; dualColor = ColorID.Purple; dualObject.InitializeDual(dualColor, i, TogglePosition.Open); //dualObject.GrabToggle().CurrentZone = new LockedZone(2); //((LockedZone)dualObject.GrabToggle().CurrentZone).DrawZone(dualObject.GrabDual().PositionOpened); PieSlice.CreatePaintSliceNormal(i, 360f / dumbNumberOfToggles, ColorID.Purple, delay / 2f); continue; } var gameObject = (GameObject)Instantiate(prefabNormal); int color; do { color = ColorID.RandomPrimaryColor(); } while (previousColor == color); previousColor = color; gameObject.InitializeNormal(color, i, TogglePosition.Closed); PieSlice.CreatePaintSliceNormal(i, 360f / dumbNumberOfToggles, color, delay / 2f); delay++; } var gameObject2 = (GameObject)Instantiate(prefabNormal); int color2; do { color2 = ColorID.RandomPrimaryColor(); } while (previousColor == color2 || color2 == ColorID.Red); //Debug.Log("gbjwbgjwt " + color2); gameObject2.InitializeNormal(color2, i, TogglePosition.Open); gameObject2.GrabToggle().CurrentZone = new DualColorZone(color2, ColorID.Red); PieSlice.CreatePaintSliceDual(i, 360f / dumbNumberOfToggles, color2, ColorID.Red, delay / 2f); VLiner.DrawCircle(); }
public void DrawZone(Vector3 position) { VLiner.DrawCircle(position, 12f); }