コード例 #1
0
    void UpdateTerrains()
    {
        Vector3 cameraPosition = cam.Position;

        currentTerrain = (int)(cameraPosition.z / terrainSize.y);
        if (currentTerrain > previousTerrain)
        {
            Destroy(terrains[TerrainPosition.Bot].gameObject);
            int size = terrains.Count - 1;

            for (int i = 0; i < size; i++)
            {
                terrains[(TerrainPosition)i] = terrains[(TerrainPosition)i + 1];
            }

            GameObject regionClone = PrefabController.CreateGameObject(PrefabController.Prefab.Terrain);
            Vector3    position    = regionClone.transform.position;
            position.z = terrains[(TerrainPosition)((int)TerrainPosition.Top - 1)].Position.z + terrainSize.y;
            regionClone.transform.position = position;
            TerrainGeneration terrain = regionClone.GetComponent <TerrainGeneration>();
            terrain.Setup(halfRegionSize);
            terrains[TerrainPosition.Top] = terrain;
        }

        previousTerrain = currentTerrain;
    }