Esempio n. 1
0
    private Mesh caveMesh()
    {
        MeshBuilder     meshBuilder   = new MeshBuilder();
        int             pads          = landingPadLocations.Count;
        float           degreesPerPad = 360 / pads;
        IList <Vector2> wallCoords;//new List<Vector2>();

        if (pads == 2)
        {
            Vector2 normal = 2 * landingPadLocations[0] - landingPadLocations[1];
            wallCoords = wallForPad(landingPadLocations[0], normal, degreesPerPad);
            normal     = 2 * landingPadLocations[1] - landingPadLocations[0];
            foreach (var coord in wallForPad(landingPadLocations[1], normal, degreesPerPad))
            {
                wallCoords.Add(coord);
            }
            //wallForPad(new Vector2(0,0), new Vector2(1,0), 180);

            //close off the cave
            wallCoords.Add(wallCoords[0]);
        }
        else
        {
            Debug.Log("Unsupported number of landing pads");
            return(null);
        }

        helper.BuildWall(meshBuilder, wallCoords);
        //		new List<Vector2>() {
        //			new Vector2(-10,-12),
        //			new Vector2(-12,-6),
        //			new Vector2(-10,0),
        //			new Vector2(-12,6),
        //			new Vector2(-2,12)
        //		});

        Mesh mesh = meshBuilder.CreateMesh();

        mesh.RecalculateNormals();

        return(mesh);
    }