Hey, I am making a 2d (Verticle) endless runner game, following a tutorial. Now I ran into a problem that my endless level generation stops when I go to high (when i go 3000 higher from start). It doesn’t have anything to do with worldorigin, I think it must be in the script somewhere.
Here is a video of what happens zoomed out: Imgur: The magic of the Internet
And here is the script:
private const float PLAYER_DISTANCE_SPAWN_LEVEL_PART = 250f;
[SerializeField] private List<Transform> levelPartList;
[SerializeField] private Transform levelPart_Start;
[SerializeField] private Player player;
private Vector3 lastEndPosition;
private void Awake()
{
lastEndPosition = levelPart_Start.Find("EndPosition").position;
int startingSpawnLevelParts = 20;
for (int i = 0; i < startingSpawnLevelParts; i++)
{
SpawnLevelPart();
}
}
private void Update()
{
if (Vector3.Distance(player.transform.position, lastEndPosition) < PLAYER_DISTANCE_SPAWN_LEVEL_PART)
{
SpawnLevelPart();
}
}
private void SpawnLevelPart()
{
Transform chosenLevelPart = levelPartList[Random.Range(0, levelPartList.Count)];
Transform lastLevelPartTransform = SpawnLevelPart(chosenLevelPart, lastEndPosition);
lastEndPosition = lastLevelPartTransform.Find("EndPosition").position;
}
private Transform SpawnLevelPart(Transform levelPart, Vector3 spawnPosition)
{
Transform levelPartTransform = Instantiate(levelPart, spawnPosition, Quaternion.identity);
return levelPartTransform;
}