Answers for "how to make random terrain generation in Unity"

C#
140

how to make random terrain generation in Unity

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class gen : MonoBehaviour
{
    //add this to a terrain object
    public int depth = 40;
    public int width = 1000;
    public int height = 1000;
    public float scale = 25f;
    void Start()
    {
        Terrain terrain = GetComponent<Terrain>();
        terrain.terrainData = GenerataTerrain(terrain.terrainData);

    }

    TerrainData GenerataTerrain(TerrainData terrainData)
    {
        terrainData.heightmapResolution = width + 1;
        terrainData.size = new Vector3(width, depth, height);

        terrainData.SetHeights(0, 0, GenHeights());
        return terrainData;
    }
    float[,] GenHeights()
    {
        float[,] heights = new float[width, height];
        for(int x = 0; x < width; x++)
        {
            for(int y = 0; y < height; y++)
            {
                heights[x, y] = calhi(x, y);
            }
        }
        return heights;
    }
    float calhi(int x, int y)
    {
        float xcoord = (float)x / width * scale;
        float ycoord = (float)y / height * scale;

        return Mathf.PerlinNoise(xcoord, ycoord);
    }
}
Posted by: Guest on August-06-2021

Code answers related to "how to make random terrain generation in Unity"

C# Answers by Framework

Browse Popular Code Answers by Language