예제 #1
0
 public void RemoveTraffic(TrafficObject to)
 {
     if (QueuedTraffic.Remove(to))
     {
         OnQueuedTrafficUpdate();
     }
 }
예제 #2
0
파일: Lane.cs 프로젝트: Dudecake/SoftDev
 public void AddTraffic(TrafficObject trafficObject)
 {
     trafficObject = Instantiate(trafficObject);
     trafficObject.transform.SetParent(this.transform);
     trafficObject.Lane   = this;
     trafficObject.PathId = Random.Range(0, Paths.Length);
     trafficObject.transform.localPosition = Paths[trafficObject.PathId].points[0];
 }
예제 #3
0
 public void AddTraffic(TrafficObject to, int directionRequest = -1)
 {
     if (!QueuedTraffic.ContainsKey(to))
     {
         QueuedTraffic.Add(to, directionRequest);
         OnQueuedTrafficUpdate();
     }
 }
예제 #4
0
파일: BusLane.cs 프로젝트: Dudecake/SoftDev
        protected override TrafficUpdateViewModel CreateTrafficUpdate(List <GameObject> triggerinGameObjects)
        {
            TrafficUpdateViewModel trafficUpdate = base.CreateTrafficUpdate(triggerinGameObjects);

            List <GameObject> orderedTriggeringGameObjects = triggerinGameObjects.OrderBy(s => Vector3.Distance(this.TrafficLight.transform.position, s.transform.position)).ToList();

            trafficUpdate.DirectionRequests = new int[orderedTriggeringGameObjects.Count];
            for (int i = 0; i < orderedTriggeringGameObjects.Count; i++)
            {
                TrafficObject bus = orderedTriggeringGameObjects[i].gameObject.GetComponent <Bus>();
                trafficUpdate.DirectionRequests[i] = this.Paths[bus.PathId].BusDirectionId;
            }

            return(trafficUpdate);
        }
예제 #5
0
        private void SpawnRandomTraffic()
        {
            int randomNumber = Random.Range(0, 100);

            if (randomNumber < 50) //Car
            {
                TrafficObject trafficObject = CarPrefabs[Random.Range(0, CarPrefabs.Length)];
                Lane          lane          = RegularLanes[Random.Range(0, RegularLanes.Length)];
                if (!lane.QueueFull())
                {
                    lane.AddTraffic(trafficObject);
                }
            }
            else if (randomNumber < 60) //Bus
            {
                TrafficObject trafficObject = BusPrefabs[Random.Range(0, BusPrefabs.Length)];
                Lane          lane          = BusLanes[Random.Range(0, BusLanes.Length)];
                if (!lane.QueueFull())
                {
                    lane.AddTraffic(trafficObject);
                }
            }
            else if (randomNumber < 80) //Bicycle
            {
                TrafficObject trafficObject = BicyclePrefabs[Random.Range(0, BicyclePrefabs.Length)];
                Lane          lane          = BicycleLanes[Random.Range(0, BicycleLanes.Length)];
                if (!lane.QueueFull())
                {
                    lane.AddTraffic(trafficObject);
                }
            }
            else //Pedestrian
            {
                TrafficObject trafficObject = PedestrianPrefabs[Random.Range(0, PedestrianPrefabs.Length)];
                Lane          lane          = PedestrianLanes[Random.Range(0, PedestrianLanes.Length)];
                if (!lane.QueueFull())
                {
                    lane.AddTraffic(trafficObject);
                }
            }
        }