- Home /
Question by
croofixofficial · Nov 11, 2021 at 04:42 PM ·
programmingprogramming-basics
Based on player position - type of spawning tiles.
Hello
I would like to make an endless falling game where player is falling in some kind of mining shaft. But I really don't know how to implement, based on high level, tiles. For example if player position on y <= 0 & >= -90 spawning tile should be Tile0. If player position on y < -90 & >= -180 spawning tile should be Tile1. If player position on y < -180 & >= -270 spawning tile should be Tile2.
There is my code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TileManager : MonoBehaviour
{
public GameObject[] tilePrefabs;
public float ySpawn = 0;
public float tileLength = 10;
public int numberOfTiles = 5;
private List<GameObject> activeTiles = new List<GameObject>();
public Transform playerTransform;
// Start is called before the first frame update
void Start()
{
for(int i=0; i < numberOfTiles; i++)
{
if (i <= 0)
SpawnTile(0);
else
SpawnTile(Random.Range(0, tilePrefabs.Length));
}
}
// Update is called once per frame
void Update()
{
if(playerTransform.position.y + 15 < -(ySpawn - (numberOfTiles * tileLength)))
{
SpawnTile(Random.Range(0, tilePrefabs.Length));
DeleteTile();
}
}
public void SpawnTile(int tileIndex)
{
GameObject go=Instantiate(tilePrefabs[tileIndex], -transform.up * ySpawn, transform.rotation * Quaternion.Euler(90, 180, 0));
activeTiles.Add(go);
ySpawn += tileLength;
}
private void DeleteTile()
{
Destroy(activeTiles[0]);
activeTiles.RemoveAt(0);
}
}
Thanks :)
Comment
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Gameplay Android 0 Answers
How to find Gameobject with given coordinates 1 Answer
Fullscreen mode stuck at windowed 0 Answers
Possible to use if-statement using the ?-operator with only a single statement? 1 Answer