예제 #1
0
    public Face Init(Transform parent, PlanetSettings settings, Directions direction, ShapeGenerator shapeGenerator)
    {
        planetSettings      = settings;
        Direction           = direction;
        this.shapeGenerator = shapeGenerator;

        if (parent != null)
        {
            transform.parent = parent;
        }

        if (meshFilter == null)
        {
            meshFilter      = gameObject.AddComponent <MeshFilter>();
            meshFilter.mesh = Mesh = new Mesh {
                name = "Procedural Face"
            };
        }

        if (meshRenderer == null)
        {
            meshRenderer = gameObject.AddComponent <MeshRenderer>();
        }

        meshGenerator = null;

        gameObject.name = direction.ToString();

        return(this);
    }
예제 #2
0
    public void UpdateMesh()
    {
        if (meshGenerator == null)
        {
            faceMeshData = new FaceMeshData
            {
                Direction     = Direction,
                Resolution    = planetSettings.MeshResolution,
                Offset        = Offset,
                LevelOfDetail = LevelOfDetail
            };

            meshGenerator = new FaceMeshGenerator(faceMeshData, shapeGenerator);
        }

        meshGenerator.UpdateMesh(Mesh);
    }