public void RemoveTraffic(TrafficObject to) { if (QueuedTraffic.Remove(to)) { OnQueuedTrafficUpdate(); } }
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]; }
public void AddTraffic(TrafficObject to, int directionRequest = -1) { if (!QueuedTraffic.ContainsKey(to)) { QueuedTraffic.Add(to, directionRequest); OnQueuedTrafficUpdate(); } }
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); }
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); } } }