Проблема со спавном движущихся объектов в Unity 3d
Всем привет, столкнулся с такой проблемой как спавн движущихся объектов. Я делаю FlappyBird в 3D и по задумке на заднем фоне должны ездить машинки, появляться и исчезать они должны относительно движущегося игрока(вне поля зрения). Я написал вот такой код но нормально работает он только в начале игры:
private Transform playerTransform;
private float spawnZ = -65.0f; //начальная координата по оси Y
private float spawnX = 10.75f; //координата спавна по оси Х
private float tileLength = 40.0f; //расстояние между машинами
private float safeZone = 55.0f; //Сэйв зона
private int amnTilesOnScreen = 5; //максимум машин на экране
private List<GameObject> activeTiles;
void Start()
{
activeTiles = new List<GameObject>();
playerTransform = GameObject.FindGameObjectWithTag("Player").transform;
for (int i = 0; i < amnTilesOnScreen; i++)
{
SpawnTile();
}
}
void Update()
{
if (playerTransform.position.z - safeZone > (spawnZ - amnTilesOnScreen * tileLength))
{
SpawnTile();
DeleteTile();
}
}
private void SpawnTile(int prefabIndex = -1)
{
GameObject go;
go = Instantiate(tilePrefabs[0]) as GameObject;
go.transform.SetParent(transform);
go.transform.position = Vector3.back * spawnZ + Vector3.left * spawnX;
spawnZ += tileLength;
activeTiles.Add(go);
}
private void DeleteTile()
{
Destroy(activeTiles[0]);
activeTiles.RemoveAt(0);
}
}
По итогу 6я и последующие машинки спавнятся очень далеко дуг от друга как указано на картинке расстояния 1 и 2 разные, также чем больше машинок проезжают тем раньше они деспавнятся. Может кто знает как решить эту проблему?
P.s. Скрипт был написан под спавн тайлов, но я его немного переделал под спавн авто.
