public Vector3 GetRandomSpawnPosition() { if (spawnPoints != null) { bool foundSpawner = false; Vector3 newStartPosition = new Vector3(); float timeOut = Time.time + 2f; while (!foundSpawner) { NetworkStartPosition startPoint = spawnPoints[Random.Range(0, spawnPoints.Length)]; SpawnPoint spawnPoint = startPoint.GetComponent <SpawnPoint>(); if (spawnPoint.isOcupied == false) { newStartPosition = startPoint.transform.position; foundSpawner = true; } if (Time.time > timeOut) { foundSpawner = true; newStartPosition = originalPosition; } } return(newStartPosition); } return(originalPosition); }
private Vector3 GetRandomSpawnPoint() { if (spawnPoints != null) { if (spawnPoints.Length > 0) { bool isFreeSpawner = false; Vector3 newStartPos = originalPosition; float timeOut = Time.time + 2f; while (!isFreeSpawner && Time.time < timeOut) { NetworkStartPosition startPoint = spawnPoints[Random.Range(0, spawnPoints.Length)]; SpawnPoint spawnPoint = startPoint.GetComponent <SpawnPoint>(); if (spawnPoint.IsOccupied == false) { isFreeSpawner = true; newStartPos = startPoint.transform.position; } } return(newStartPos); } } return(originalPosition); }