void spawnCar(CarScenario aScenario) { int startJunctionIndex = aScenario == null?world.getRandomEndPointIdx() : aScenario.startJunctionIndex; createCount = aScenario == null ? createCount : -1; if (!summonAreas[startJunctionIndex].hasCarInside && createCount < 0) { //string carModelName = aScenario == null ? "Prefab/Vehicle/CarModel00" + (int)UnityEngine.Random.Range(1, 10) : aScenario.carModelName; string carModelName = "Prefab/Vehicle/CarModel001"; cars.Add(UnityEngine.Object.Instantiate(Resources.Load(carModelName) as GameObject, this.transform)); List <int> trackIdx = new List <int>(); if (aScenario != null) { cars[cars.Count - 1].GetComponent <Car>().initialize(world.roadEnds[startJunctionIndex], world.roads, trafficLightManager, trajectoryParent, aScenario.trackIndex); } else if (saveData) { cars[cars.Count - 1].GetComponent <Car>().initialize(world.roadEnds[startJunctionIndex], world.roads, trafficLightManager, trajectoryParent, ref trackIdx); } else { cars[cars.Count - 1].GetComponent <Car>().initialize(world.roadEnds[startJunctionIndex], world.roads, trafficLightManager, trajectoryParent); } createCount = creatingInterval; if (saveData) { carScenarioManager.save(dataIndex, carModelName, startJunctionIndex, ref trackIdx); } } }
void generateCar(CarScenario aScenario) { if (cars.Count < numOfCars) { spawnCar(aScenario); } if (createCount > -1) { createCount--; } }
public void operate() { if (loadData) { CarScenario aScenario = carScenarioManager.executeLoadData(dataIndex); if (aScenario != null) { generateCar(aScenario); } } for (int i = 0; i < cars.Count; i++) { if (!cars[i].GetComponent <Car>().alive) { cars[i].GetComponent <Car>().removeTrajectory(trajectoryParent); Destroy(cars[i]); cars.RemoveAt(i); } } }