# [Solved] how to make of slopes/terrain? [closed]

You can create something like that procedurally. I just created a behaviour that will create a senoidal track much like your picture above:

``````// written by 'imerso' as a StackOverflow answer.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SlopeTerrain : MonoBehaviour
{
public int heightInMeters = 5;
public int widthInMeters = 128;
public float ondulationFactor = 0.1f;
public Material material;

// Use this for initialization
void Start ()
{
Mesh mesh = new Mesh();
List<Vector3> vertices = new List<Vector3>();
List<int> triangles = new List<int>();

for (int p = 0; p < widthInMeters; p++)
{
// add two vertices, one at the horizontal position but displaced by a sine wave,
// and other at the same horizontal position, but at bottom
vertices.Add(new Vector3(p, Mathf.Abs(heightInMeters * Mathf.Sin(p * ondulationFactor)), 0));

if (p > 0)
{
// we have enough vertices created already,
// so start creating triangles using the previous vertices indices
int v0 = p * 2 - 2;         // first sine vertex
int v1 = p * 2 - 1;         // first bottom vertex
int v2 = p * 2;             // second sine vertex
int v3 = p * 2 + 1;         // second bottom vertex

// first triangle

// second triangle
}
}

mesh.vertices = vertices.ToArray();
mesh.triangles = triangles.ToArray();

mesh.RecalculateBounds();

if (material != null)
{
r.sharedMaterial = material;
}

f.sharedMesh = mesh;
}
}
``````

To keep it simple for you to understand though, I made it just 2D. To use it, create an empty GameObject, then put the above script on it. It has a few parameters which you can tweak as well. Good luck.

solved how to make of slopes/terrain? [closed]