Beispiel #1
0
    void Start()
    {
        // Initialise main Class object
        terrain = new TerrainGenerator();

        // Calling the constructor (Unity's C# does not allow conventional constructors)
        terrain.initialise(patchSize, patchMatrixSize);

        // Updating end-point of main mesh
        endPoint = new Vector3(terrain.terrainSize - 1, 0, terrain.terrainSize - 1);

        // Generate fractal Diamond-Square turbulence
        terrain.applyDiamondSquare(diSqStrength);

        // Initialise procedural texture variables
        terrain.applyProceduralTex(true, sandColor, sandLimit, sandStrength, sandCoverage, true, grassColor, grassStrength, true, snowColor, snowLimit, snowStrength, snowCoverage, true, rockColor, slopeLimit, slopeStrength, noiseTexValue);

        // Build mesh
        terrain.build();

        // erosionManager has to be created when
        erosionManager = new ErosionManager(terrain);
        erosionManager.initHydraulicMaps();
        filterManager = new FilterManager(terrain);
        //riverGenerator has to be after filterManager!
        riverGenerator = new RiverGenerator(terrain);

        //doesn't work well with on-fly generation
        riverGenerator.ftm.PerserveMountains(5, 30, 20);
    }