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);
}
}