U3D_TobaccoWarehouseISMDTSy.../Assets/Scripts/YL/Enteringreservoirarea.cs

142 lines
6.7 KiB
C#

using Cysharp.Threading.Tasks;
using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
public class Enteringreservoirarea : MonoBehaviour
{
/// <summary>
/// 物体位移到指定位置
/// </summary>
public Transform transportbox;
/// <summary>
/// 位移箱子速度
/// </summary>
public float speed = 5f;
/// <summary>
/// 提升机
/// </summary>
public GameObject Uptrans;
/// <summary>
/// 第一个码垛机
/// </summary>
public GameObject Palletizingarm1;
/// <summary>
/// 第二个码垛机
/// </summary>
public GameObject Palletizingarm2;
/// <summary>
/// 需要位移的点位
/// </summary>
public Transform point;
/// <summary>
/// 记住提升机初始位置
/// </summary>
public Transform pos;
/// <summary>
/// 箱子的位置
/// </summary>
public Transform boxpos;
/// <summary>
/// 箱子第二步位移
/// </summary>
public Transform box2;
/// <summary>
/// 码垛机位置一
/// </summary>
public Transform tongs1;
/// <summary>
/// 码垛机位移二
/// </summary>
public Transform tongs2;
/// <summary>
/// 箱子位移第四步
/// </summary>
public Transform box3;
/// <summary>
/// 箱子位移第五步
/// </summary>
public Transform box4;
/// <summary>
/// 箱子位移第五步
/// </summary>
public Transform box5;
/// <summary>
/// 箱子位移第六步
/// </summary>
public Transform box6;
/// <summary>
/// 第二个码垛机抓手点位
/// </summary>
public Transform tongs3;
/// <summary>
/// 第二个码垛机抓手点位
/// </summary>
public Transform tongs4;
/// <summary>
/// 箱子位移第7个点位
/// </summary>
public Transform box7;
void Start()
{
}
void Update()
{
}
private async void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Box"))
{
await Makeprogress(other.gameObject, Uptrans);
}
}
private async UniTask Makeprogress(GameObject box, GameObject hoister)
{
await hoister.transform.DOMove(point.transform.position, (Vector3.Distance(hoister.transform.position, transportbox.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
box.gameObject.transform.position = new Vector3(box.transform.position.x, box.transform.position.y + 0.8f, box.transform.position.z);
box.gameObject.transform.SetParent(null);
await Moveup(box.gameObject, hoister);
}
private async UniTask Moveup(GameObject point, GameObject upmachine)
{
await point.transform.DOMove(transportbox.transform.position, (Vector3.Distance(point.transform.position, transportbox.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
point.transform.SetParent(upmachine.transform);
await upmachine.transform.DOMove(pos.transform.position, (Vector3.Distance(upmachine.transform.position, pos.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
point.transform.SetParent(null);
await point.transform.DOMove(boxpos.transform.position, (Vector3.Distance(point.transform.position, boxpos.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
await point.transform.DOMove(box2.transform.position, (Vector3.Distance(point.transform.position, box2.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
GameObject boxchild = point.transform.GetChild(0).gameObject;
boxchild.transform.SetParent(null);
Debug.Log(boxchild.name);
await point.transform.DOMove(box3.transform.position, (Vector3.Distance(point.transform.position, box3.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
boxchild.transform.SetParent(Palletizingarm1.transform);
await Palletizingarm1.gameObject.transform.DOMove(tongs2.transform.position, (Vector3.Distance(Palletizingarm1.transform.position, tongs2.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
boxchild.transform.SetParent(null);
await point.transform.DOMove(box4.transform.position, (Vector3.Distance(point.transform.position, box4.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
await Palletizingarm1.gameObject.transform.DOMove(tongs1.transform.position, (Vector3.Distance(Palletizingarm1.transform.position, tongs1.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
await boxchild.transform.DOMove(box3.transform.position, (Vector3.Distance(boxchild.transform.position, box3.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
await point.transform.DOMove(box5.transform.position, (Vector3.Distance(point.transform.position, box5.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
await boxchild.transform.DOMove(box4.transform.position, (Vector3.Distance(boxchild.transform.position, box4.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
await point.transform.DOMove(box6.transform.position, (Vector3.Distance(point.transform.position, box6.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
await boxchild.transform.DOMove(box5.transform.position, (Vector3.Distance(boxchild.transform.position, box5.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
await Palletizingarm2.transform.DOMove(tongs3.transform.position, (Vector3.Distance(Palletizingarm2.transform.position, tongs3.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
point.transform.SetParent(Palletizingarm2.transform);
await Palletizingarm2.transform.DOMove(tongs4.transform.position, (Vector3.Distance(Palletizingarm2.transform.position, tongs4.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
await boxchild.transform.DOMove(box6.transform.position, (Vector3.Distance(boxchild.transform.position, box6.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
point.transform.SetParent(null);
boxchild.transform.SetParent(point.transform);
await point.transform.DOMove(box7.transform.position, (Vector3.Distance(point.transform.position, box7.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
await Palletizingarm2.transform.DOMove(tongs3.transform.position, (Vector3.Distance(Palletizingarm2.transform.position, tongs3.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
point.transform.SetParent(box7);
}
}