This commit is contained in:
parent
9e6c6a47bf
commit
1d01fe2a72
Binary file not shown.
|
@ -1,33 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 362b1633b920f104d935369b4fe6c613
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
|
@ -123,7 +123,7 @@ public class MqttManager : MonoSingleton<MqttManager>
|
|||
Convoyorequipment convoyorequipment = JsonConvert.DeserializeObject<Convoyorequipment>(str.message);
|
||||
string con = convoyorequipment.Id.Substring(0, 2);
|
||||
Debug.Log(con);
|
||||
if (con=="54")
|
||||
if (con == "54")
|
||||
{
|
||||
convoyorequipments.Add(convoyorequipment);
|
||||
}
|
||||
|
@ -134,9 +134,9 @@ public class MqttManager : MonoSingleton<MqttManager>
|
|||
break;
|
||||
case "ca":
|
||||
Carequipment carequipment = JsonConvert.DeserializeObject<Carequipment>(str.message);
|
||||
//string carname = str.device;
|
||||
//GameObject cargame = GameObject.Find(carname);
|
||||
// await Carpoint(cargame,carequipment);
|
||||
string carname = str.device;
|
||||
GameObject cargame = GameObject.Find(carname);
|
||||
Carpoint(cargame, carequipment);
|
||||
break;
|
||||
case "fe":
|
||||
Feequipment feequipment = JsonConvert.DeserializeObject<Feequipment>(str.message);
|
||||
|
@ -158,11 +158,17 @@ public class MqttManager : MonoSingleton<MqttManager>
|
|||
}
|
||||
}
|
||||
}
|
||||
public async UniTask Carpoint(GameObject car, Carequipment carequipment)
|
||||
public void Carpoint(GameObject car, Carequipment carequipment)
|
||||
{
|
||||
string point = carequipment.CarState_Car_Column + "-" + carequipment.CarState_Car_Row + "-" + carequipment.CarState_Car_Layer;
|
||||
Debug.Log(point);
|
||||
GameObject displacement = GameObject.Find(point);
|
||||
await car.transform.DOMove(displacement.transform.position, Vector3.Distance(car.transform.position, displacement.transform.position) / speed).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
Debug.Log(carequipment.id);
|
||||
if (car)
|
||||
{
|
||||
Carinformation carbox = car.GetComponent<Carinformation>();
|
||||
carbox.BoxCode = carequipment.CarState_BoxCode;
|
||||
string point = carequipment.CarState_Car_Column + "-" + carequipment.CarState_Car_Row + "-" + carequipment.CarState_Car_Layer;
|
||||
Debug.Log(point);
|
||||
GameObject displacement = GameObject.Find(point);
|
||||
car.transform.DOMove(displacement.transform.position, Vector3.Distance(car.transform.position, displacement.transform.position) / speed).SetEase(Ease.InOutQuad);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class Carinformation : MonoBehaviour
|
||||
{
|
||||
public string ID;
|
||||
/// <summary>
|
||||
/// 获取mqtt数据对应的箱子id
|
||||
/// </summary>
|
||||
public string BoxCode;
|
||||
void Start()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ba648a40aa90ec04ca725f6bc6394e6e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -5,4 +5,5 @@ using UnityEngine;
|
|||
public class Consentmark : MonoBehaviour
|
||||
{
|
||||
public string ID;
|
||||
|
||||
}
|
||||
|
|
|
@ -21,12 +21,8 @@ public class Deliveryfromstorage : MonoBehaviour
|
|||
car1 = GameObject.Find("14-37-2");
|
||||
tarton = car1.GetComponent<Transform>();
|
||||
|
||||
//MoveTo(tarton);
|
||||
//Sequence mySequence = DOTween.Sequence();
|
||||
//mySequence.Append(transform.DOMove(car.transform.position, 5).SetEase(Ease.InOutQuad)).Append(transform.DOMove(car1.transform.position, 5)).SetEase(Ease.InOutQuad).Append(transform.DOMove(car.transform.position, 5).OnComplete(() =>
|
||||
//{
|
||||
|
||||
//}));
|
||||
|
||||
|
||||
await Planneddisplacement();
|
||||
}
|
||||
|
||||
|
@ -34,29 +30,29 @@ public class Deliveryfromstorage : MonoBehaviour
|
|||
{
|
||||
|
||||
Transform point = GameObject.Find("8-40-2").transform;
|
||||
await transform.DOMove(point.transform.position, (Vector3.Distance(transform.position, point.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
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.InOutQuad).AsyncWaitForCompletion();
|
||||
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.InOutQuad).AsyncWaitForCompletion();
|
||||
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.InOutQuad).AsyncWaitForCompletion();
|
||||
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.InOutQuad).AsyncWaitForCompletion();
|
||||
await transform.DOMove(point4.transform.position, (Vector3.Distance(transform.position, point4.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
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.InOutQuad).AsyncWaitForCompletion();
|
||||
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.InOutQuad).AsyncWaitForCompletion();
|
||||
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.InQuad).AsyncWaitForCompletion();
|
||||
await transform.DOMove(point4.transform.position, (Vector3.Distance(transform.position, point6.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
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.InOutQuad).AsyncWaitForCompletion();
|
||||
await transform.DOMove(point4.transform.position, (Vector3.Distance(transform.position, point4.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
await transform.DOMove(point6.transform.position, (Vector3.Distance(transform.position, point6.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
await transform.DOMove(point7.transform.position, (Vector3.Distance(transform.position, point7.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
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();
|
||||
|
||||
|
||||
|
||||
|
@ -67,8 +63,16 @@ public class Deliveryfromstorage : MonoBehaviour
|
|||
|
||||
if (other.gameObject.CompareTag("Box"))
|
||||
{
|
||||
Carinformation car = transform.GetComponent<Carinformation>();
|
||||
Boxinformation boxinformation = other.gameObject.transform.GetComponent<Boxinformation>();
|
||||
if (car && boxinformation)
|
||||
{
|
||||
boxinformation.ID = car.BoxCode;
|
||||
Debug.Log(boxinformation.ID);
|
||||
}
|
||||
Debug.Log("触发了");
|
||||
other.transform.SetParent(transform);
|
||||
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)
|
||||
{
|
||||
// 获取触发器物体的碰撞体
|
||||
|
@ -83,16 +87,18 @@ public class Deliveryfromstorage : MonoBehaviour
|
|||
|
||||
// 设置物体的位置
|
||||
other.transform.position = triggerTop;
|
||||
other.transform.SetParent(transform);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError("Trigger object does not have a Collider component.");
|
||||
Debug.LogError("没有碰撞器");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError("Colliding object is not assigned.");
|
||||
Debug.LogError("碰撞到物体了");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -22,26 +22,12 @@ public class Displaygoods : MonoBehaviour
|
|||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
private async void OnTriggerEnter(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(box);
|
||||
// }
|
||||
//}
|
||||
}
|
||||
|
||||
public async void OnTriggerStay(Collider other)
|
||||
{
|
||||
if (other.gameObject.CompareTag("Car"))
|
||||
|
@ -59,13 +45,25 @@ public class Displaygoods : MonoBehaviour
|
|||
}
|
||||
public async UniTask Boxmove(GameObject car,GameObject box)
|
||||
{
|
||||
await box.transform.DOMove(Box1.transform.position, (Vector3.Distance(box.transform.position, Box1.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
await box.transform.DOMove(Box2.transform.position, (Vector3.Distance(box.transform.position, Box2.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
await box.transform.DOMove(Box3.transform.position, (Vector3.Distance(box.transform.position, Box3.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
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 car.transform.DOMove(point.transform.position,(Vector3.Distance(car.transform.position,point.transform.position)/speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
await MoveObjectToPosition(car.transform, point.transform.position, speed);
|
||||
Transform point2 = GameObject.Find("11-33-2").transform;
|
||||
await car.transform.DOMove(point2.transform.position, (Vector3.Distance(car.transform.position, point2.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ using System.Collections;
|
|||
using System.Collections.Generic;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
public class Enteringreservoirarea : MonoBehaviour
|
||||
{
|
||||
|
@ -91,6 +92,10 @@ public class Enteringreservoirarea : MonoBehaviour
|
|||
{
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 箱子触发
|
||||
/// </summary>
|
||||
/// <param name="other"></param>
|
||||
private async void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (other.gameObject.CompareTag("Box"))
|
||||
|
@ -98,44 +103,63 @@ public class Enteringreservoirarea : MonoBehaviour
|
|||
await Makeprogress(other.gameObject, Uptrans);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="box"></param>
|
||||
/// <param name="hoister"></param>
|
||||
/// <returns></returns>
|
||||
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();
|
||||
await MoveObjectToPosition(hoister.transform, point.transform.position, speed);
|
||||
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);
|
||||
box.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();
|
||||
await MoveObjectToPosition(point.transform, transportbox.position, speed);
|
||||
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();
|
||||
await MoveObjectToPosition(upmachine.transform, pos.transform.position, speed);
|
||||
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();
|
||||
await MoveObjectToPosition(point.transform, boxpos.transform.position, speed);
|
||||
await MoveObjectToPosition(point.transform, box2.transform.position, speed);
|
||||
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();
|
||||
await MoveObjectToPosition(point.transform, box3.transform.position, speed);
|
||||
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();
|
||||
await MoveObjectToPosition(Palletizingarm1.transform, tongs2.transform.position, speed);
|
||||
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();
|
||||
await MoveObjectToPosition(point.transform, box4.transform.position, speed);
|
||||
await MoveObjectToPosition(Palletizingarm1.transform, tongs1.transform.position, speed);
|
||||
await MoveObjectToPosition(boxchild.transform, box3.transform.position, speed);
|
||||
await MoveObjectToPosition(point.transform, box5.transform.position, speed);
|
||||
await MoveObjectToPosition(boxchild.transform, box4.transform.position, speed);
|
||||
await MoveObjectToPosition(point.transform, box6.transform.position, speed);
|
||||
await MoveObjectToPosition(boxchild.transform, box5.transform.position, speed);
|
||||
await MoveObjectToPosition(Palletizingarm2.transform, tongs3.transform.position, speed);
|
||||
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();
|
||||
await MoveObjectToPosition(Palletizingarm2.transform, tongs4.transform.position, speed);
|
||||
await MoveObjectToPosition(boxchild.transform, box6.transform.position, speed);
|
||||
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();
|
||||
BoxCollider collider = point.GetComponent<BoxCollider>();
|
||||
collider.center = new Vector3(0,0,0);
|
||||
await MoveObjectToPosition(point.transform, box7.transform.position, speed);
|
||||
await MoveObjectToPosition(Palletizingarm2.transform, tongs3.transform.position, speed);
|
||||
point.transform.SetParent(box7);
|
||||
}
|
||||
/// <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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using static InterfaceManager;
|
||||
using DefaultNamespace;
|
||||
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class Fetchbox : MonoBehaviour
|
||||
{
|
||||
|
|
|
@ -110,7 +110,7 @@ public class Interaction : MonoBehaviour
|
|||
Debug.Log(gameObject.tag);
|
||||
if (hit.collider.CompareTag("Car"))
|
||||
{
|
||||
Consentmark carinformation = hit.collider.gameObject.GetComponent<Consentmark>();
|
||||
Carinformation carinformation = hit.collider.gameObject.GetComponent<Carinformation>();
|
||||
Debug.Log(carinformation.ID);
|
||||
string url = Carinterface + carinformation.ID;
|
||||
StartCoroutine(Post1(url, (data) =>
|
||||
|
|
|
@ -51,6 +51,7 @@ public class Movetest : MonoBehaviour
|
|||
await transform.DOMove(point6.transform.position, (Vector3.Distance(transform.position, point6.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
Transform point7 = GameObject.Find("14-39-2").transform;
|
||||
await transform.DOMove(point7.transform.position,(Vector3.Distance(transform.position,point7.transform.position)/speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
await UniTask.Delay(2000);
|
||||
//await transform.DOMove(point6.transform.position, (Vector3.Distance(transform.position, point6.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
//await transform.DOMove(point4.transform.position, (Vector3.Distance(transform.position, point4.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
await transform.DOMove(point6.transform.position, (Vector3.Distance(transform.position, point6.transform.position) / speed)).SetEase(Ease.InOutQuad).AsyncWaitForCompletion();
|
||||
|
@ -64,6 +65,13 @@ public class Movetest : MonoBehaviour
|
|||
|
||||
if (other.gameObject.CompareTag("Box"))
|
||||
{
|
||||
Carinformation car = transform.GetComponent<Carinformation>();
|
||||
Boxinformation boxinformation = other.gameObject.transform.GetComponent<Boxinformation>();
|
||||
if (car && boxinformation)
|
||||
{
|
||||
boxinformation.ID = car.BoxCode;
|
||||
Debug.Log(boxinformation.ID);
|
||||
}
|
||||
Debug.Log("´¥·¢ÁË");
|
||||
other.transform.SetParent(transform);
|
||||
if (other.gameObject != null)
|
||||
|
|
|
@ -1,77 +1,60 @@
|
|||
using UnityEngine;
|
||||
using System;
|
||||
using System.Threading;
|
||||
using uPLibrary.Networking.M2Mqtt;
|
||||
using uPLibrary.Networking.M2Mqtt.Messages;
|
||||
using System.Threading.Tasks;
|
||||
using MQTTnet;
|
||||
using MQTTnet.Client;
|
||||
using MQTTnet.Protocol;
|
||||
|
||||
public class MqttHslClient : MonoBehaviour
|
||||
{
|
||||
private MqttFactory mqttFactory = new MqttFactory();
|
||||
private IMqttClient mqttClient;
|
||||
void Start()
|
||||
{
|
||||
mqttClient = mqttFactory.CreateMqttClient();
|
||||
Task.Run(async () => await ConnectToMqttBrokerAsync());
|
||||
}
|
||||
private async Task ConnectToMqttBrokerAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
var options = new MqttClientOptionsBuilder()
|
||||
.WithTcpServer("172.16.1.104", 8083) // 使用 HiveMQ 公共代理
|
||||
.WithClientId(Guid.NewGuid().ToString())
|
||||
.WithCleanSession()
|
||||
.Build();
|
||||
//连接
|
||||
var response = await mqttClient.ConnectAsync(options, CancellationToken.None);
|
||||
Debug.Log(("The MQTT client is connected.") + mqttClient.IsConnected);
|
||||
//生成订阅
|
||||
var topicFilter = new MqttTopicFilterBuilder()
|
||||
.WithTopic("car8")
|
||||
.WithQualityOfServiceLevel(MqttQualityOfServiceLevel.ExactlyOnce)
|
||||
.Build();
|
||||
await mqttClient.SubscribeAsync(topicFilter);
|
||||
mqttClient.ApplicationMessageReceivedAsync += (e =>
|
||||
{
|
||||
var topic = e.ApplicationMessage.Topic;
|
||||
var payload = System.Text.Encoding.UTF8.GetString(e.ApplicationMessage.PayloadSegment.Array);
|
||||
Debug.Log($"Topic is {topic}, Payload is {payload}");
|
||||
return Task.CompletedTask;
|
||||
});
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.Log(e.Message);
|
||||
}
|
||||
}
|
||||
private void HandleReceivedMessage(MqttApplicationMessageReceivedEventArgs e)
|
||||
{
|
||||
// 接收到 MQTT 消息时的处理逻辑
|
||||
string topic = e.ApplicationMessage.Topic;
|
||||
string payload = System.Text.Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
|
||||
Debug.Log($"Received message from topic '{topic}': {payload}");
|
||||
private MqttClient mqttClient;
|
||||
public string brokerAddress = "172.16.1.104";//代理的地址
|
||||
public int brokerPort = 8083;//代理端口
|
||||
private string[] topic = { "car1", "car2", "car3", "car4", "car5" }; // 订阅的多个主题
|
||||
|
||||
// 如果消息是 JSON 格式,可以进行 JSON 解析
|
||||
try
|
||||
{
|
||||
//MyDataObject data = JsonUtility.FromJson<MyDataObject>(payload);
|
||||
// 现在您可以使用 data 对象中的数据
|
||||
//Debug.Log($"Parsed JSON: {data}");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.LogError($"Failed to parse JSON: {ex.Message}");
|
||||
}
|
||||
}
|
||||
void Update()
|
||||
async void Start()
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
ConnectToMqttServer();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
public void ConnectToMqttServer()
|
||||
{
|
||||
for (int i = 0; i < topic.Length; i++)
|
||||
{
|
||||
Debug.Log(topic[i]);
|
||||
}
|
||||
// 创建 MQTT 客户端实例
|
||||
mqttClient = new MqttClient(brokerAddress, brokerPort, false, null, null, MqttSslProtocols.None);
|
||||
|
||||
// 注册消息处理函数
|
||||
mqttClient.MqttMsgPublishReceived += OnMqttMsgPublishReceived;
|
||||
|
||||
// 连接到 MQTT 代理
|
||||
mqttClient.Connect(Guid.NewGuid().ToString());
|
||||
|
||||
// 订阅多个主题
|
||||
|
||||
byte[] qosLevels = { MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE, MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE, MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE, MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE, MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE };
|
||||
mqttClient.Subscribe(topic, qosLevels);
|
||||
}
|
||||
private void OnMqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
|
||||
{
|
||||
string message = System.Text.Encoding.UTF8.GetString(e.Message);
|
||||
Debug.Log($"Received message from topic {e.Topic}: {message}");
|
||||
// 处理接收到的消息
|
||||
}
|
||||
/// <summary>
|
||||
/// 结束时释放内存
|
||||
/// </summary>
|
||||
void OnDestroy()
|
||||
{
|
||||
if (mqttClient != null && mqttClient.IsConnected)
|
||||
{
|
||||
mqttClient.Disconnect();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,71 @@
|
|||
using Cysharp.Threading.Tasks;
|
||||
using DG.Tweening;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class Outboundequipment : MonoBehaviour
|
||||
{
|
||||
/// <summary>
|
||||
/// 提升机架子
|
||||
/// </summary>
|
||||
public GameObject frame;
|
||||
/// <summary>
|
||||
/// 箱子位移的速度
|
||||
/// </summary>
|
||||
private float speed = 5f;
|
||||
/// <summary>
|
||||
/// 提升机第一个点位
|
||||
/// </summary>
|
||||
public Transform point1;
|
||||
/// <summary>
|
||||
/// 提升机第二个点位
|
||||
/// </summary>
|
||||
public Transform point2;
|
||||
/// <summary>
|
||||
/// 提升机第三个点位
|
||||
/// </summary>
|
||||
public Transform point3;
|
||||
void Start()
|
||||
{
|
||||
|
||||
}
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
private async void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (other.gameObject.CompareTag("Box"))
|
||||
{
|
||||
await Shipment(other.gameObject,frame);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 出货
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private async UniTask Shipment(GameObject box,GameObject frame)
|
||||
{
|
||||
await MoveObjectToPosition(frame.transform, point1.transform.position,speed);
|
||||
box.gameObject.transform.position = new Vector3(box.transform.position.x, box.transform.position.y + 0.8f, box.transform.position.z);
|
||||
await MoveObjectToPosition(box.transform, point1.transform.position, speed);
|
||||
box.transform.SetParent(frame.transform);
|
||||
await MoveObjectToPosition(frame.transform, point2.transform.position, speed);
|
||||
box.transform.SetParent(null);
|
||||
await MoveObjectToPosition(box.transform, point3.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();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 35aa1c9c22f6c5a4e86d37ebf9872d6c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,77 @@
|
|||
using Cysharp.Threading.Tasks;
|
||||
using DG.Tweening;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class Shippingoffthebox : MonoBehaviour
|
||||
{
|
||||
/// <summary>
|
||||
/// 位移速度
|
||||
/// </summary>
|
||||
private float speed = 5f;
|
||||
async void Start()
|
||||
{
|
||||
await Displacement();
|
||||
}
|
||||
|
||||
private async UniTask Displacement()
|
||||
{
|
||||
Transform point1 = GameObject.Find("13-40-2").transform;
|
||||
await transform.DOMove(point1.transform.position, (Vector3.Distance(transform.position, point1.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion();
|
||||
Transform point2 = GameObject.Find("13-36-2").transform;
|
||||
await transform.DOMove(point2.transform.position, (Vector3.Distance(transform.position, point2.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion();
|
||||
Transform point3 = GameObject.Find("14-36-2").transform;
|
||||
await transform.DOMove(point3.transform.position, (Vector3.Distance(transform.position, point3.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion();
|
||||
Transform point4 = GameObject.Find("4-36-2").transform;
|
||||
await transform.DOMove(point4.transform.position, (Vector3.Distance(transform.position, point4.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion();
|
||||
Transform point5 = GameObject.Find("4-31-2").transform;
|
||||
await transform.DOMove(point5.transform.position, (Vector3.Distance(transform.position, point5.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion();
|
||||
Transform point6 = GameObject.Find("3-31-2").transform;
|
||||
await transform.DOMove(point6.transform.position, (Vector3.Distance(transform.position, point6.transform.position) / speed)).SetEase(Ease.Linear).AsyncWaitForCompletion();
|
||||
}
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
|
||||
if (other.gameObject.CompareTag("Box"))
|
||||
{
|
||||
Carinformation car = transform.GetComponent<Carinformation>();
|
||||
Boxinformation boxinformation = other.gameObject.transform.GetComponent<Boxinformation>();
|
||||
if (car && boxinformation)
|
||||
{
|
||||
boxinformation.ID = car.BoxCode;
|
||||
Debug.Log(boxinformation.ID);
|
||||
}
|
||||
Debug.Log("触发了");
|
||||
other.transform.SetParent(transform);
|
||||
if (other.gameObject != null)
|
||||
{
|
||||
// 获取触发器物体的碰撞体
|
||||
Collider triggerCollider = GetComponent<Collider>();
|
||||
|
||||
// 确保触发器物体有碰撞体
|
||||
if (triggerCollider != null)
|
||||
{
|
||||
// 计算触发器物体顶部的世界坐标
|
||||
Vector3 triggerPosition = triggerCollider.bounds.center;
|
||||
Vector3 triggerTop = triggerPosition + Vector3.up * (triggerCollider.bounds.extents.y + -0.2f);
|
||||
|
||||
// 设置物体的位置
|
||||
other.transform.position = triggerTop;
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError("Trigger object does not have a Collider component.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError("Colliding object is not assigned.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c0616546235b4fc40addc3ba12ce0d0b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -1,7 +1,7 @@
|
|||
using Cysharp.Threading.Tasks;
|
||||
using DG.Tweening;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEditor.SceneManagement;
|
||||
using UnityEngine;
|
||||
|
||||
public class Transportbox : MonoBehaviour
|
||||
|
@ -27,9 +27,33 @@ public class Transportbox : MonoBehaviour
|
|||
/// </summary>
|
||||
public Transform pos;
|
||||
/// <summary>
|
||||
/// Ïä×ÓµÄλÖÃ
|
||||
/// 箱子第一个位置点
|
||||
/// </summary>
|
||||
public Transform boxpos;
|
||||
/// <summary>
|
||||
/// 箱子第二个位置点
|
||||
/// </summary>
|
||||
public Transform box2;
|
||||
/// <summary>
|
||||
/// 提升机第四个点位
|
||||
/// </summary>
|
||||
public Transform box3;
|
||||
/// <summary>
|
||||
/// 码垛机提升抓手
|
||||
/// </summary>
|
||||
public GameObject tongs;
|
||||
/// <summary>
|
||||
/// 箱子位移第四个点位
|
||||
/// </summary>
|
||||
public Transform box4;
|
||||
/// <summary>
|
||||
/// 码垛机向下位移
|
||||
/// </summary>
|
||||
public Transform box5;
|
||||
/// <summary>
|
||||
/// 码垛机回原位
|
||||
/// </summary>
|
||||
public Transform box6;
|
||||
void Start()
|
||||
{
|
||||
|
||||
|
@ -41,6 +65,10 @@ public class Transportbox : MonoBehaviour
|
|||
{
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 有箱子触发
|
||||
/// </summary>
|
||||
/// <param name="other"></param>
|
||||
private async void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (other.gameObject.CompareTag("Box"))
|
||||
|
@ -48,20 +76,82 @@ public class Transportbox : MonoBehaviour
|
|||
await Makeprogress(other.gameObject, Uptrans);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 下箱
|
||||
/// </summary>
|
||||
/// <param name="box"></param>
|
||||
/// <param name="hoister"></param>
|
||||
/// <returns></returns>
|
||||
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();
|
||||
await MoveObjectToPosition(hoister.transform, point.transform.position, speed);
|
||||
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);
|
||||
}
|
||||
/// <summary>
|
||||
/// 入库烟箱
|
||||
/// </summary>
|
||||
/// <param name="point"></param>
|
||||
/// <param name="upmachine"></param>
|
||||
/// <returns></returns>
|
||||
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();
|
||||
await MoveObjectToPosition(point.transform, transportbox.transform.position, speed);
|
||||
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 MoveObjectToPosition(upmachine.transform, pos.transform.position, speed);
|
||||
point.transform.SetParent(null);
|
||||
await MoveObjectToPosition(point.transform, boxpos.transform.position, speed);
|
||||
await MoveObjectToPosition(point.transform, box2.transform.position, speed);
|
||||
Boxinformation box = point.GetComponent<Boxinformation>();
|
||||
GameObject daughter = point.transform.GetChild(0).gameObject;
|
||||
daughter.transform.SetParent(null);
|
||||
BoxCollider boxtwe = point.GetComponent<BoxCollider>();
|
||||
boxtwe.size = new Vector3(1.3f, 1.3f, 1.3f);
|
||||
boxtwe.center = new Vector3(0, 0.6f,0);
|
||||
Boxinformation boxdata = daughter.AddComponent<Boxinformation>();
|
||||
Assign(boxdata, box);
|
||||
BoxCollider cillider = daughter.AddComponent<BoxCollider>();
|
||||
cillider.size = new Vector3(1.3f, 1.3f, 1.3f);
|
||||
daughter.tag = "Box";
|
||||
daughter.transform.SetParent(tongs.transform);
|
||||
await MoveObjectToPosition(tongs.transform, box3.transform.position, speed);
|
||||
await MoveObjectToPosition(point.transform, box4.transform.position, speed);
|
||||
await MoveObjectToPosition(tongs.transform, box5.transform.position, speed);
|
||||
daughter.transform.SetParent(null);
|
||||
await MoveObjectToPosition(tongs.transform, box6.transform.position, speed);
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取箱子身上参数
|
||||
/// </summary>
|
||||
/// <param name="box1"></param>
|
||||
/// <param name="box2"></param>
|
||||
public void Assign(Boxinformation box1, Boxinformation box2)
|
||||
{
|
||||
box1.ID = box2.ID;
|
||||
box1.type = box2.type;
|
||||
box1.locationId = box2.locationId;
|
||||
box1.description = box2.description;
|
||||
box1.locationState = box2.locationState;
|
||||
box1.storageState = box2.storageState;
|
||||
box1.layer = box2.layer;
|
||||
box1.row = box2.row;
|
||||
box1.column = box2.column;
|
||||
box1.specialFlag = box2.specialFlag;
|
||||
box1.palletNum = box2.palletNum;
|
||||
box1.itemType = box2.itemType;
|
||||
box1.isSpecial = box2.isSpecial;
|
||||
}
|
||||
/// <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();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue