using Cysharp.Threading.Tasks; using DG.Tweening; using System.Collections; using System.Collections.Generic; using UnityEngine; public class Displaygoods : MonoBehaviour { /// /// 判断物体身上是否有箱子 /// public GameObject box7; /// /// 箱子第一个位置 /// public Transform Box1; public Transform Box2; public Transform Box3; public float speed = 5f; void Start() { } void Update() { } public async void OnTriggerStay(Collider other) { if (other.gameObject.CompareTag("Car")) { Debug.Log("触发了小车"); if (box7.transform.childCount > 0) { Debug.Log("上向"); GameObject box = box7.transform.GetChild(0).gameObject; box.transform.SetParent(null); await Boxmove(other.gameObject,box); } } } public async UniTask Boxmove(GameObject car,GameObject box) { await MoveObjectToPosition(box.transform, Box1.transform.position, speed); await MoveObjectToPosition(box.transform, Box2.transform.position, speed); await MoveObjectToPosition(box.transform, Box3.transform.position, speed); box.transform.SetParent(car.transform); Transform point = GameObject.Find("11-32-2").transform; await MoveObjectToPosition(car.transform, point.transform.position, speed); Transform point2 = GameObject.Find("11-33-2").transform; await MoveObjectToPosition(car.transform, point2.transform.position, speed); } /// /// 上箱操作 /// /// /// /// /// private async UniTask MoveObjectToPosition(Transform target, Vector3 destination, float speed) { float duration = Vector3.Distance(target.position, destination) / speed; await target.DOMove(destination, duration).SetEase(Ease.InOutQuad).AsyncWaitForCompletion(); } }