using System; using System.Collections; using System.Collections.Generic; using EVP; using TMPro; using UnityEngine; namespace Script { public class RoadEventManager : MonoBehaviour { private List triggeredTriggers = new List(); public VehicleController vehicleController; public GameObject ui; private IEnumerator Start() { while (true) { // 在每一帧等待,等待下一帧检测事件 yield return null; // 在这里处理当前触发器事件的逻辑 foreach (var trigger in triggeredTriggers) { switch (trigger.name) { case "超速60": if (Convert.ToInt32((vehicleController.speed * 3.6f)) > 60) { if (!ui.activeInHierarchy) { ui.SetActive(true); ui.transform.Find("Text").GetComponent().text = "超速在影响车辆的安全性能;影响驾驶人及时、准确地操作;会使驾驶人的思维判断失误;给注意力转移带来困难;对速度的判断能力下降;减弱了驾驶人对空间的认识能力。"; } } break; case "超速40": if (Convert.ToInt32((vehicleController.speed * 3.6f)) > 40) { if (!ui.activeInHierarchy) { ui.SetActive(true); ui.transform.Find("Text").GetComponent().text = "超速在影响车辆的安全性能;影响驾驶人及时、准确地操作;会使驾驶人的思维判断失误;给注意力转移带来困难;对速度的判断能力下降;减弱了驾驶人对空间的认识能力。"; } } break; case "禁止停车": if (Convert.ToInt32((vehicleController.speed * 3.6f)) <=1) { if (!ui.activeInHierarchy) { ui.SetActive(true); ui.transform.Find("Text").GetComponent().text = "机动车如果在行驶中随意的停放,那么就会导致交通事故也会增加,机动车突然的停车也会使得其他的驾驶员无法做好准备,因此就会将碰撞事故以及追尾意外的发生增加。"; } } break; } Debug.Log(trigger.name); // 处理触发器事件的逻辑 } } } private void OnTriggerEnter(Collider other) { if (other.CompareTag("honglvdengchufa")) { if (other.name == "触发红灯") { if (!ui.activeInHierarchy) { ui.SetActive(true); ui.transform.Find("Text").GetComponent().text = "车辆闯红灯容易导致车辆相撞或者撞到行人,造成严重的交通事故。更可能导致交通秩序混乱,影响其他车辆和行人的正常通行。"; } } else { // 检查是否已经在触发器列表中 if (!triggeredTriggers.Contains(other)) { // 进入新的触发器时,保存它到列表 triggeredTriggers.Add(other); // 在这里执行触发器进入事件的处理逻辑 } } } } private void OnTriggerExit(Collider other) { if (other.CompareTag("honglvdengchufa")) { // 离开触发器时,从列表中移除它 triggeredTriggers.Remove(other); } // 在这里执行触发器离开事件的处理逻辑 } } }