U3D_TobaccoWarehouseISMDTSy.../Assets/Scripts/YL/Detection.cs

73 lines
2.0 KiB
C#

using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
public class Detection : MonoBehaviour
{
private Collider triggerCollider;
private void Start()
{
triggerCollider = GetComponent<Collider>();
if (triggerCollider == null)
{
Debug.LogError("没有找到碰撞体!");
return;
}
}
private void Update()
{
// 检查触发器是否被禁用
if (!triggerCollider.enabled)
{
// 如果失活,启动协程
StartCoroutine(ActivateAfterDelay(15f));
}
//if (Input.GetMouseButtonDown(2))
//{
// transform.DOMoveY(transform.position.y + 0.4f, 1f).SetEase(Ease.InOutQuad).OnComplete(() =>
// {
// Collider collider = GetComponent<Collider>();
// if (collider)
// {
// collider.enabled = false;
// Debug.Log("失活了箱子触发器");
// transform.SetParent(null);
// }
// Debug.Log("卸箱动画向上提");
// transform.DOMoveY(transform.position.y - 0.4f, 1f).SetEase(Ease.InOutQuad).OnComplete(() =>
// {
// Debug.Log("卸箱动画向下提");
// });
// });
//}
}
private IEnumerator ActivateAfterDelay(float delay)
{
// 等待指定的时间
yield return new WaitForSeconds(delay);
// 激活触发器
triggerCollider.enabled = true;
//Debug.Log("触发器已激活!");
// 继续监测触发器状态
while (true)
{
// 检查是否仍然激活
if (!triggerCollider.enabled)
{
//Debug.Log("再次调用十五秒再调用");
// 如果再次失活,重启协程
StartCoroutine(ActivateAfterDelay(15f));
yield break; // 退出当前协程
}
yield return null; // 等待下一帧
}
}
}