diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 54c6277..5ca7c5f 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -236,6 +236,8 @@ travelTimes: [] trafficLights: {fileID: 128843417} cameraControl: {fileID: 1256630291} + frequency: 0.2 + frequencyVariance: 0.1 --- !u!4 &128843416 Transform: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 54c6277..5ca7c5f 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -236,6 +236,8 @@ travelTimes: [] trafficLights: {fileID: 128843417} cameraControl: {fileID: 1256630291} + frequency: 0.2 + frequencyVariance: 0.1 --- !u!4 &128843416 Transform: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Config.cs b/Assets/Scripts/Config.cs index 31ca3eb..6be79a8 100644 --- a/Assets/Scripts/Config.cs +++ b/Assets/Scripts/Config.cs @@ -15,6 +15,7 @@ public RoadNetwork roadNetwork = new RoadNetwork(); public TrafficLights trafficLights; public CameraControl cameraControl; + public float frequency, frequencyVariance; public void click(Mode mode, int index) { onClick(); diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 54c6277..5ca7c5f 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -236,6 +236,8 @@ travelTimes: [] trafficLights: {fileID: 128843417} cameraControl: {fileID: 1256630291} + frequency: 0.2 + frequencyVariance: 0.1 --- !u!4 &128843416 Transform: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Config.cs b/Assets/Scripts/Config.cs index 31ca3eb..6be79a8 100644 --- a/Assets/Scripts/Config.cs +++ b/Assets/Scripts/Config.cs @@ -15,6 +15,7 @@ public RoadNetwork roadNetwork = new RoadNetwork(); public TrafficLights trafficLights; public CameraControl cameraControl; + public float frequency, frequencyVariance; public void click(Mode mode, int index) { onClick(); diff --git a/Assets/Scripts/Roads/Node/SpawnNodeData.cs b/Assets/Scripts/Roads/Node/SpawnNodeData.cs index 1e23c32..55e2a3e 100644 --- a/Assets/Scripts/Roads/Node/SpawnNodeData.cs +++ b/Assets/Scripts/Roads/Node/SpawnNodeData.cs @@ -4,16 +4,27 @@ public class SpawnNodeData : NodeData { public List targets = new List(); - public float timeLeft = 0f, interval = 5f; + public float timeLeft = 0f; void Update() { timeLeft -= Time.deltaTime; if (timeLeft <= 0f && targets.Count > 0) { - timeLeft = interval; + timeLeft = Random.Range(1 / (config.frequency * (1 - config.frequencyVariance)), 1 / (config.frequency * (1 + config.frequencyVariance))); ExitNodeData target = targets[Random.Range(0, targets.Count)]; Route route = new Route(node, target.node); - if (route.isValid && route.roads[0].carsOnRoute.Count == 0) { + bool canSummon = route.isValid; + foreach (Car car in route.roads[0].carsOnRoute) { + if (car.roadPositon <= 3f) { + canSummon = false; + } + if (!canSummon) { + break; + } + } + if (canSummon) { new Car(route, transform, config); + } else { + node.config.travelTimes.Add(0f); } } }