コード例 #1
0
    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);
    }
コード例 #2
0
    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();
    }
コード例 #3
0
 public void DrawZone(Vector3 position)
 {
     VLiner.DrawCircle(position, 12f);
 }