void GenerateLeafMesh()
    {
        body = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        if (body)
        {
            body.name = "Leaf";
            DestroyImmediate(body.GetComponent <SphereCollider>());
        }
        else
        {
            Debug.LogError("Failed to created body on " + this.name + " object.");
            return;
        }

        int newShape = Random.Range(shape.x, shape.y);

        mesh     = GenerateIcoSphere.Create(newShape, 1.0f);
        vertices = mesh.vertices;

        GenerateLeafNoise();

        mesh.vertices = vertices;
        mesh.RecalculateNormals();
        body.GetComponent <MeshFilter>().sharedMesh = mesh;
    }
    void GenerateMesh()
    {
        body = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        if (body)
        {
            this.name                    = "Rock";
            body.transform.parent        = transform;
            body.name                    = "body";
            body.transform.localPosition = Vector3.zero;
            DestroyImmediate(body.GetComponent <SphereCollider>());
        }
        else
        {
            Debug.LogError("Failed to created body on " + this.name + " object.");
            return;
        }

        int newShape = Random.Range(shape.x, shape.y + 1);

        mesh     = GenerateIcoSphere.Create(newShape, 1.0f);
        vertices = mesh.vertices;
    }