Exemplo n.º 1
0
    /// <summary>
    /// L-Systemによる植物生成実行
    /// </summary>
    public void GeneratePlant()
    {
        if (config == null)
        {
            return;
        }
        if (randomSeed != 0)
        {
            random = new XORandom(randomSeed);
        }
        else
        {
            random = new XORandom(XORandom.RandRange(0, 0x7fffffff));
        }

        maxDepth = 0;
        var dna = GenerateDNA();

        if (dna != null)
        {
            var nodes = CreateNodes(dna);

            ReleaseMesh();
            Transform[] bones = new Transform[nodes.Length];
            plantMesh = CreateMesh(nodes, ref bones);

            if (meshRenderer != null)
            {
                meshRenderer.rootBone   = boneOrigin;
                meshRenderer.sharedMesh = plantMesh;
                meshRenderer.bones      = bones;
            }
            if (meshFilter != null)
            {
                meshFilter.mesh = plantMesh;
            }
        }
    }