- Home /
How to create endless terrain...
Hi ... i am developing an endless running game.. i used the follow script to make an endless track(road). which works like 1st prefab(roadPrefab) end 2nd start(creates prefab of road depends on you , at private int numberofroads make it 2,3,5). 2nd end 1st again start .. linklist... now whats happening, its just an endless road.. i want environment around the road... if i add cars building as a child of my road.. it instantiate them with the road but the game get slow.. i think its because instantiating prefab with much size .. and if i remove buildings it doesn't slows down neither make any jerk....i think in the game like subway surfer , minnion rush, temple run etc they create terrains of different scenes and then attach them ... i don't know... i doesn't making me sense .. :( .. my collisions are working ,power ups etc .. now i am stuck here which i should have done in the very beginning ... :'( ... and my road moves towards the player and player remains on the x axis... kindly help please ..
 using UnityEngine;
 using System.Collections.Generic;
 
 public class MoveRoad : MonoBehaviour {
     
     public Transform prefab;
     //bool flag;// this is for boolean controlling the oncollision stop the road movement
     private LinkedList<Transform> roads = new LinkedList<Transform>();
     
     private float posY = 0.0f;
     private int numberOfRoads = 5;
 
     // Use this for initialization
     void Start () {
         
         // Init the scene with some road-pieces
         for(int i=0;i < numberOfRoads;i++) {
             Transform road = Instantiate(prefab) as Transform;
             road.Translate(0, posY, i * road.localScale.z);
             roads.AddLast(road);
         }
     }
     
     // Update is called once per frame
     void Update ( ) {
         Transform firstRoad = roads.First.Value;
         Transform lastRoad = roads.Last.Value;
         
         // Create a new road if the first one is not 
         // in sight anymore and destroy the first one
         if(firstRoad.localPosition.z < -40f) {
             roads.Remove(firstRoad);
             Destroy(firstRoad.gameObject);
             
             Transform newRoad = Instantiate(prefab, new Vector3(0, posY ,
                                                                 lastRoad.localPosition.z + lastRoad.localScale.z), 
                                             Quaternion.identity) as Transform;
             roads.AddLast(newRoad);
             
         }
 
         // Move the available roads along the z-axis
 //        if(!flag)
 //        {
         foreach(Transform road in roads) {
 
 
             road.Translate(0,0, -25f * Time.deltaTime);
 //            }
             //flag = false;
         }
     }
 
 
 }
 
Your answer
 
 
             Follow this Question
Related Questions
Endless Running game random generator ? 3 Answers
Searching for free .raw Heightmaps 0 Answers
Sketchup Buildings in Unity 2 Answers
How do I generate an omnidirectional 2d terrain? 0 Answers
Create an unlimited terrain 2 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                