108 lines
4.4 KiB
C#
108 lines
4.4 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using EVP;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
|
|
namespace Script
|
|
{
|
|
public class RoadEventManager : MonoBehaviour
|
|
{
|
|
private List<Collider> triggeredTriggers = new List<Collider>();
|
|
|
|
|
|
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<TMP_Text>().text = "超速在影响车辆的安全性能;影响驾驶人及时、准确地操作;会使驾驶人的思维判断失误;给注意力转移带来困难;对速度的判断能力下降;减弱了驾驶人对空间的认识能力。";
|
|
}
|
|
}
|
|
|
|
break;
|
|
case "超速40":
|
|
if (Convert.ToInt32((vehicleController.speed * 3.6f)) > 40)
|
|
{
|
|
if (!ui.activeInHierarchy)
|
|
{
|
|
ui.SetActive(true);
|
|
ui.transform.Find("Text").GetComponent<TMP_Text>().text = "超速在影响车辆的安全性能;影响驾驶人及时、准确地操作;会使驾驶人的思维判断失误;给注意力转移带来困难;对速度的判断能力下降;减弱了驾驶人对空间的认识能力。";
|
|
}
|
|
}
|
|
|
|
break;
|
|
case "禁止停车":
|
|
if (Convert.ToInt32((vehicleController.speed * 3.6f)) <=1)
|
|
{
|
|
if (!ui.activeInHierarchy)
|
|
{
|
|
ui.SetActive(true);
|
|
ui.transform.Find("Text").GetComponent<TMP_Text>().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<TMP_Text>().text = "车辆闯红灯容易导致车辆相撞或者撞到行人,造成严重的交通事故。更可能导致交通秩序混乱,影响其他车辆和行人的正常通行。";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// 检查是否已经在触发器列表中
|
|
if (!triggeredTriggers.Contains(other))
|
|
{
|
|
// 进入新的触发器时,保存它到列表
|
|
triggeredTriggers.Add(other);
|
|
|
|
// 在这里执行触发器进入事件的处理逻辑
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void OnTriggerExit(Collider other)
|
|
{
|
|
if (other.CompareTag("honglvdengchufa"))
|
|
{
|
|
// 离开触发器时,从列表中移除它
|
|
triggeredTriggers.Remove(other);
|
|
}
|
|
// 在这里执行触发器离开事件的处理逻辑
|
|
}
|
|
}
|
|
} |