using Cysharp.Threading.Tasks; using DG.Tweening; using System.Collections; using System.Collections.Generic; using UnityEngine; public class Deliveryfromstorage : MonoBehaviour { public Transform tarton; public GameObject car; public GameObject car1; public Transform targetPosition; public float speed = 5; private bool isMoving = false; async void Start() { car = GameObject.Find("4-1-2"); car1 = GameObject.Find("14-37-2"); tarton = car1.GetComponent(); await Planneddisplacement(); } private async UniTask Planneddisplacement() { Transform point = GameObject.Find("8-40-2").transform; await transform.DOMove(point.transform.position, (Vector3.Distance(transform.position, point.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion(); Transform point2 = GameObject.Find("8-32-2").transform; await transform.DOMove(point2.transform.position, (Vector3.Distance(transform.position, point2.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion(); Transform point3 = GameObject.Find("13-32-2").transform; await transform.DOMove(point3.transform.position, (Vector3.Distance(transform.position, point3.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion(); Transform point4 = GameObject.Find("13-7-2").transform; await transform.DOMove(point4.transform.position, (Vector3.Distance(transform.position, point4.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion(); Transform point5 = GameObject.Find("14-7-2").transform; await transform.DOMove(point5.transform.position, (Vector3.Distance(transform.position, point5.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion(); await transform.DOMove(point4.transform.position, (Vector3.Distance(transform.position, point4.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion(); Transform point6 = GameObject.Find("13-1-2").transform; await transform.DOMove(point6.transform.position, (Vector3.Distance(transform.position, point6.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion(); Transform point7 = GameObject.Find("14-1-2").transform; await transform.DOMove(point7.transform.position, (Vector3.Distance(transform.position, point7.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion(); await UniTask.Delay(4000); await transform.DOMove(point6.transform.position, (Vector3.Distance(transform.position, point6.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion(); await transform.DOMove(point4.transform.position, (Vector3.Distance(transform.position, point4.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion(); Transform point8 = GameObject.Find("15-7-2").transform; await transform.DOMove(point8.transform.position, (Vector3.Distance(transform.position, point8.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion(); await transform.DOMove(point4.transform.position, (Vector3.Distance(transform.position, point4.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion(); await transform.DOMove(point6.transform.position, (Vector3.Distance(transform.position, point6.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion(); await transform.DOMove(point7.transform.position, (Vector3.Distance(transform.position, point7.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion(); } private void OnTriggerEnter(Collider other) { if (other.gameObject.CompareTag("Box")) { Carinformation car = transform.GetComponent(); Boxinformation boxinformation = other.gameObject.transform.GetComponent(); if (car && boxinformation) { boxinformation.ID = car.BoxCode; Debug.Log(boxinformation.ID); } Debug.Log("触发了"); other.transform.position = new Vector3(other.transform.position.x, other.transform.position.y + 0.2f, other.transform.position.z); //other.transform.position = new Vector3(other.transform.position.x, other.transform.position.y - 0.2f, other.transform.position.z); if (other.gameObject != null) { // 获取触发器物体的碰撞体 Collider triggerCollider = GetComponent(); // 确保触发器物体有碰撞体 if (triggerCollider != null) { // 计算触发器物体顶部的世界坐标 Vector3 triggerPosition = triggerCollider.bounds.center; Vector3 triggerTop = triggerPosition + Vector3.up * (triggerCollider.bounds.extents.y + -0.2f); // 设置物体的位置 other.transform.position = triggerTop; other.transform.SetParent(transform); } else { Debug.LogError("没有碰撞器"); } } else { Debug.LogError("碰撞到物体了"); } } } }