U3D_TobaccoWarehouseISMDTSy.../Assets/Scripts/YL/Displaygoods.cs

70 lines
2.1 KiB
C#

using Cysharp.Threading.Tasks;
using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Displaygoods : MonoBehaviour
{
/// <summary>
/// 判断物体身上是否有箱子
/// </summary>
public GameObject box7;
/// <summary>
/// 箱子第一个位置
/// </summary>
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);
}
/// <summary>
/// 上箱操作
/// </summary>
/// <param name="target"></param>
/// <param name="destination"></param>
/// <param name="speed"></param>
/// <returns></returns>
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();
}
}