Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
        void generateCar(CarScenario aScenario)
        {
            if (cars.Count < numOfCars)
            {
                spawnCar(aScenario);
            }

            if (createCount > -1)
            {
                createCount--;
            }
        }
Beispiel #3
0
        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);
                }
            }
        }