void CreatePrefab(CaveGenerator caveGenerator)
    {
        Cave cave = caveGenerator.ExtractCave();

        Assert.IsNotNull(cave, "Internal error: extracted null cave.");

        string path = CreateFolder(ROOT_FOLDER, CAVE_FOLDER);

        CreateMeshAssets(cave.GetFloors(), FLOOR_FOLDER, path);
        CreateMeshAssets(cave.GetCeilings(), CEILING_FOLDER, path);
        CreateMeshAssets(cave.GetWalls(), WALL_FOLDER, path);
        CreateCavePrefab(cave.GameObject, path);

        Destroy(cave.GameObject);
    }
    public void CreatePrefab(CaveGenerator caveGenerator)
    {
        GameObject cave = caveGenerator.ExtractCave();

        if (cave == null)
        {
            Debug.Log("Cavegenerator: no cave object found!");
            return;
        }
        string guid = AssetDatabase.CreateFolder("Assets", "GeneratedCave");
        string path = AssetDatabase.GUIDToAssetPath(guid) + "/";

        foreach (MapMeshes meshes in caveGenerator.GeneratedMeshes)
        {
            CreateMeshAssets(meshes, path);
        }
        CreateCavePrefab(path, cave);
        Destroy(cave);
    }