private void CreateCars() { if (Cars.Length == 0) { return; } var points = new RandomQueue <GameObject>(GameObject.FindGameObjectsWithTag("StartPoint")); int numCars = points.Count / 100 + 10; numCars = Mathf.Min(numCars, 1050); numCars = Mathf.Max(numCars, 1000); Debug.Log($"# of cars: {numCars}"); Debug.Log($"Queue Size: {points.Count}"); for (int i = 0; i < numCars; i++) { var newCar = Instantiate <Car>(Cars[Random.Range(0, Cars.Length)]); var spawnPoint = points.Dequeue(); while (spawnPoint != null && spawnPoint.GetComponent <RoadPoint>().IsTrafficLightRoad) { spawnPoint = points.Dequeue(); } if (spawnPoint == null) { break; } // newCar.SetNextPoint(spawnPoint, spawnPoint); newCar.SetNextPoint(spawnPoint); newCar.transform.position = spawnPoint.transform.position + Vector3.up * 5; newCar.transform.rotation = spawnPoint.transform.rotation; // Camera.main.transform.position = newCar.transform.position; } }