Exemple #1
0
    IEnumerator GenerateTerrain()
    {
        StopAllCoroutines();

        if (transform.childCount > 0)
        {
            if (Application.isPlaying)
            {
                for (int i = 0; transform.childCount > 0; i++)
                {
                    Destroy(transform.GetChild(0).gameObject);
                }
            }
            else
            {
                for (int i = 0; transform.childCount > 0; i++)
                {
                    DestroyImmediate(transform.GetChild(0).gameObject);
                }
            }
        }

        terrainTiles = GetComponent <TerrainTilesV2_Working> ();

        InitializeMeshTiles();
        InitializeTerrainNoise();

        terrainTileArray = terrainTiles.GenerateTerrainTiles(gameObject, "Terrain", terrainTileNumX, terrainTileNumZ);

        yield return(StartCoroutine(TerrainCoroutine()));
    }
    public void GenerateTerrain()
    {
        if (terrainCoroutine != null)
        {
            StopCoroutine(terrainCoroutine);
        }

        if (!Application.isPlaying && terrainTileArray != null)
        {
            foreach (GameObject terrainTile in terrainTileArray)
            {
                if (terrainTile != null)
                {
                    DestroyImmediate(terrainTile);
                }
            }
        }
        else
        {
            foreach (Transform terrainTile in transform)
            {
                Destroy(terrainTile.gameObject);
            }
        }

        terrainTiles = GetComponent <TerrainTilesV2_Working> ();

        InitializeMeshTiles();
        InitializeTerrainNoise();

        terrainTileArray = terrainTiles.GenerateTerrainTiles(gameObject, "Terrain", terrainTileNumX, terrainTileNumZ);

        terrainCoroutine = StartCoroutine(TerrainCoroutine());
    }