using DefaultNamespace; using DG.Tweening; using System; using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; using static InterfaceManager; public class Conveyordata : MonoBehaviour { /// /// 输送机ID /// public string ID; /// /// 正转位置 /// [Header("正传需要位移的位置")] public Transform Pointforword; /// /// 反转位置 /// [Header("正传判断箱子位置")] public Transform Pointreversal; /// /// 提升机反转位置 /// [Header("一层反转提升机位置")] public Transform Liftreversal; [Header("二层反转提升机位置")] public Transform Liftreversal2; [Header("反转判断箱子点位")] public Transform Antipoint; [Header("反转需要位移的位置")] public Transform Antipoint2; /// /// 运动的速度 /// public float Speed = 3.5f; /// /// 初始化判断 /// private bool ispcon = false; /// /// 普通实箱 /// public Material Commonfruitbox; /// /// 普通空箱 /// public Material Normalairbox; /// /// 特殊实箱 /// public Material Specialkernelbox; /// /// 特殊空箱 /// public Material Specialbox; /// /// 一个箱子 /// public GameObject Boxgame; /// /// 两个箱子 /// public GameObject Boxgame2; [Header("初始化点位")] public Transform Points; public void ConveyorData(Convoyorequipment convoyorequipment) { if (convoyorequipment.TaskNumber != "0") { //添加任务号 if (convoyorequipment.TaskNumber.Length > 0 && convoyorequipment.BoxesNumber != "0" && !ispcon) { Debug.Log("初始化输出机"); if (convoyorequipment.BoxesNumber == "1" && !ispcon) { Init(convoyorequipment); } else if (convoyorequipment.BoxesNumber == "2" && !ispcon) { Init2(convoyorequipment); } ispcon = true; } else if (convoyorequipment.TaskNumber.Length > 0) { if (transform.childCount > 0) { if (transform.GetChild(0).GetComponent()) { Boxtasknumber boxtasknumber = transform.GetChild(0).GetComponent(); if (boxtasknumber != null) { boxtasknumber.ID = convoyorequipment.TaskNumber; } } } } ispcon = true; if (convoyorequipment.ForwardRotation == "True") { Debug.Log("正转"); Forwardposition(); } else if (convoyorequipment.ReverseRotation == "True") { Debug.Log("反转"); Reverseposition(); } } } /// /// 初始化两个箱子 /// private void Init2(Convoyorequipment boxid) { string url = Tasknumber + boxid.TaskNumber; StartCoroutine(Getstring(url, (data) => { Initdata initdata = JsonUtility.FromJson(data); if (initdata != null && Boxgame2) { GameObject box = Instantiate(Boxgame2, transform); Boxtasknumber boxtasknumber = box.GetComponent(); boxtasknumber.ID = initdata.result[0].transferId; switch (initdata.result[0].palletType) { case "QBox": if (initdata.result[0].itemType == "EmptyBox") { Renderer renderer = box.GetComponent(); Renderer renderer1 = box.transform.GetChild(0).GetComponent(); if (renderer != null) { renderer.material = Normalairbox; } if (renderer1 != null) { renderer1.material = Normalairbox; } } else { Renderer renderer2 = box.GetComponent(); Renderer renderer3 = box.transform.GetChild(0).GetComponent(); if (renderer2 != null) { renderer2.material = Commonfruitbox; } if (renderer3 != null) { renderer3.material = Commonfruitbox; } } break; case "Box": if (initdata.result[0].itemType == "EmptyBox") { Renderer renderer = box.GetComponent(); Renderer renderer1 = box.transform.GetChild(0).GetComponent(); if (renderer != null) { renderer.material = Specialbox; } if (renderer1 != null) { renderer1.material = Specialbox; } } else { Renderer renderer2 = box.GetComponent(); Renderer renderer3 = box.transform.GetChild(0).GetComponent(); if (renderer2 != null) { renderer2.material = Specialkernelbox; } if (renderer3 != null) { renderer3.material = Specialkernelbox; } } break; default: break; } //box.gameObject.transform.localEulerAngles = new Vector3(90, 0, 0); //box.gameObject.transform.position = new Vector3(box.transform.position.x, box.transform.position.y + 1.3f, box.transform.position.z); box.gameObject.transform.SetParent(Points, false); MqttManager.Instance.firstbox.Add(box); if (boxid.ForwardRotation == "True") { Debug.Log("正转"); Forwardposition(); } else if (boxid.ReverseRotation == "True") { Debug.Log("反转"); Reverseposition(); } } })); } /// /// 一个箱子初始化 /// private void Init(Convoyorequipment boxid) { string url = Tasknumber + boxid.TaskNumber; StartCoroutine(Getstring(url, (data) => { Initdata initdata = JsonUtility.FromJson(data); if (initdata != null && Boxgame) { GameObject box = Instantiate(Boxgame, transform); Boxtasknumber boxtasknumber = box.GetComponent(); boxtasknumber.ID = initdata.result[0].transferId; switch (initdata.result[0].palletType) { case "QBox": if (initdata.result[0].itemType == "EmptyBox") { Renderer renderer = box.GetComponent(); //Renderer renderer1 = box.transform.GetChild(0).GetComponent(); if (renderer != null) { renderer.material = Normalairbox; } //if (renderer1 != null) //{ // renderer1.material = Normalairbox; //} } else { Renderer renderer2 = box.GetComponent(); // Renderer renderer3 = box.transform.GetChild(0).GetComponent(); if (renderer2 != null) { renderer2.material = Commonfruitbox; } //if (renderer3 != null) //{ // renderer3.material = Commonfruitbox; //} } break; case "Box": if (initdata.result[0].itemType == "EmptyBox") { Renderer renderer = box.GetComponent(); //Renderer renderer1 = box.transform.GetChild(0).GetComponent(); if (renderer != null) { renderer.material = Specialbox; } //if (renderer1 != null) //{ // renderer1.material = Specialbox; //} } else { Renderer renderer2 = box.GetComponent(); //Renderer renderer3 = box.transform.GetChild(0).GetComponent(); if (renderer2 != null) { renderer2.material = Specialkernelbox; } //if (renderer3 != null) //{ // renderer3.material = Specialkernelbox; //} } break; default: break; } //box.gameObject.transform.localEulerAngles = new Vector3(90, 0, 0); //box.gameObject.transform.position = new Vector3(box.transform.position.x, box.transform.position.y + 0.65f, box.transform.position.z); box.gameObject.transform.SetParent(Points, false); MqttManager.Instance.firstbox.Add(box); if (boxid.ForwardRotation == "True") { Debug.Log("正转"); Forwardposition(); } else if (boxid.ReverseRotation == "True") { Debug.Log("反转"); Reverseposition(); } } })); } /// /// 正传运动 /// public void Forwardposition() { if (Pointreversal.childCount > 0 && Pointreversal) { GameObject box = Pointreversal.transform.GetChild(0).gameObject; if (box != null) { box.transform.SetParent(null); box.transform.DOMove(Pointforword.position, (Vector3.Distance(box.transform.position, Pointforword.transform.position) / Speed)).SetEase(Ease.InOutQuad).OnComplete(() => { box.transform.SetParent(Pointforword); }); } } } /// /// 反转运动 /// public void Reverseposition() { if (GetComponent()) { Hoistmovement hoistmovement = GetComponent(); Debug.Log("一层"); if (hoistmovement.Downpoint.childCount > 0 && Liftreversal) { Debug.Log("进来了"); GameObject box = hoistmovement.Downpoint.transform.GetChild(0).gameObject; if (box != null) { Debug.Log("反转一层"); box.transform.SetParent(null); box.transform.DOMove(Liftreversal.position, (Vector3.Distance(box.transform.position, Liftreversal.transform.position) / Speed)).SetEase(Ease.InOutQuad).OnComplete(() => { box.transform.SetParent(Liftreversal); }); } } else if (hoistmovement.UPpoint.childCount > 0 && Liftreversal2) { Debug.Log("进来了"); GameObject box = hoistmovement.UPpoint.transform.GetChild(0).gameObject; if (box != null) { Debug.Log("反转二层"); box.transform.SetParent(null); box.transform.DOMove(Liftreversal2.position, (Vector3.Distance(box.transform.position, Liftreversal2.transform.position) / Speed)).SetEase(Ease.InOutQuad).OnComplete(() => { box.transform.SetParent(Liftreversal2); }); } } } else if (Antipoint) { if (Antipoint.childCount > 0) { GameObject box = Antipoint.transform.GetChild(0).gameObject; if (box != null) { box.transform.SetParent(null); box.transform.DOMove(Antipoint2.position, (Vector3.Distance(box.transform.position, Antipoint2.transform.position) / Speed)).SetEase(Ease.InOutQuad).OnComplete(() => { Debug.Log("正常反转"); box.transform.SetParent(Antipoint2); }); } else { Debug.Log("箱子等于空"); } } else { Debug.Log("不走反转"); } } else { Debug.Log("啥也不是"); } } }