void Start() { Vector2 bgSize = bgPrefab.GetComponent <SpriteRenderer>().bounds.size; player = GameObject.FindGameObjectWithTag("Player"); laneObjects = GameController.instance.lanes; Debug.Log(bgSize.y); bgSpeed = GetLanesSpeed(); // init terrain linked list t1 = new TerrainLinkedList(terrains[0]); t2 = new TerrainLinkedList(terrains[1]); t1.setNext(t2); t2.setNext(t1); currentTerrain = t1; // init all bgs GameObject bg; for (int i = 0; i < numberOfBgs; i++) { bg = Instantiate(bgPrefab); bg.transform.parent = this.transform; Vector3 newPos = this.transform.position; newPos.x += bg.GetComponent <SpriteRenderer>().bounds.size.x *i; newPos.y = -3; bg.transform.position = newPos; bg.GetComponent <SpriteRenderer>().sprite = currentTerrain.t; bgs.Add(bg); } currentTerrain = currentTerrain.next(); Debug.Log("starttt " + laneObjects.Length); }
public void DetectBackground() { GameObject bg = bgs[0]; // 1st bg only collides with the detect point if (isCollidedWithDetectPoint(bg)) { // prepare a position of the last bg Vector3 lastBgPos = bgs[numberOfBgs - 1].transform.position; lastBgPos.x += bg.GetComponent <SpriteRenderer>().bounds.size.x; bg.transform.position = lastBgPos; numOfRemovedBgs += 1; if (numOfRemovedBgs > numChangeTerrain) { bg.GetComponent <SpriteRenderer>().sprite = currentTerrain.t; } if (numOfRemovedBgs > numChangeTerrain + numberOfBgs) { numOfRemovedBgs = 0; currentTerrain = currentTerrain.next(); } SwapBackground(); } }
public void setNext(TerrainLinkedList n) { this.nextBg = n; }