/* * Spawns a random enemy */ void SpawnEnemy(float roadZ) { //TODO: Generate random enemy // generates random side position float enemyX = 0; float enemyZ = 0; // chooses what enemy to spawn int enemyType = Random.Range(0, 3); GameObject vehicle = pfVehicles[0]; if (enemyType == 0) { vehicle = pfPoliceCar; } if (enemyType == 1) { vehicle = pfAmbulance; } if (enemyType == 2) { vehicle = pfVehicles[Random.Range(0, pfVehicles.Count)]; } // defines a direction (left or right) and sets the lane position VehicleDirection direction = (VehicleDirection)Random.Range(0, 2); switch (direction) { case VehicleDirection.Left: enemyX = settings.GameRightBoundary; enemyZ = roadZ + (2 * Constants.PathSizeZ + 1) + Constants.PathSizeZ / 2; break; case VehicleDirection.Right: enemyX = settings.GameLeftBoundary; enemyZ = roadZ + Constants.PathSizeZ + Constants.PathSizeZ / 2; break; } Vector3 enemyPosition = new Vector3(enemyX, 2, enemyZ); // instantiates enemy at position GameObject enemy = InstantiateSceneObject(vehicle, enemyPosition); VehicleAI model = enemy.GetComponent <VehicleAI>(); model.SetDirection(direction); model.Go(); }
/* * Spawns a random enemy */ void SpawnEnemy() { if (normalVehicles.Count > 0 && emergencyVehicles.Count > 0) { GameObject vehicle = normalVehicles[0]; LaneDirection laneDirection = null; // diferentiate between avenue or normal road if (avenue) { Lane lane = (Lane)Random.Range(2, 6); laneDirection = GetVehicleStartPointOnLane(lane); } else { Lane lane = (Lane)Random.Range(0, 2); laneDirection = GetVehicleStartPointOnLane(lane); } // generates emergency vehicle if (Random.value < Constants.ProbabilityLow) { vehicle = emergencyVehicles[Random.Range(0, emergencyVehicles.Count)]; } else // generates normal vehicle { vehicle = normalVehicles[Random.Range(0, normalVehicles.Count)]; } // instantiates enemy at position GameObject enemy = InstantiateSceneObject(vehicle, laneDirection.startPosition); // saves new enemy on the list vehiclesOnLanes.Add(enemy); // sets the direction and orders to go VehicleAI model = enemy.GetComponent <VehicleAI>(); model.SetDirection(laneDirection.direction); model.Go(); } }