using System; using System.Collections; using UnityEngine; using static InterfaceManager; using DefaultNamespace; using System.Collections.Generic; using cakeslice; using System.Runtime.ConstrainedExecution; public class Fetchbox : MonoBehaviour { /// /// 获取箱子接口路径 /// private string url; /// /// 烟箱子 /// public GameObject box; /// /// 获取箱子接口 /// public ShelfBoxModel shelfBoxModel = new ShelfBoxModel(); /// /// 普通实箱 /// public Material Commonfruitbox; /// /// 普通空箱 /// public Material Normalairbox; /// /// 特殊实箱 /// public Material Specialkernelbox; /// /// 特殊空箱 /// public Material Specialbox; private void Start() { url += Boxface; StartCoroutine(Getstring(url, (data) => { //Debug.Log(data); Boxdata(data); //Debug.Log("调用l"); })); } void Update() { //if (Input.GetMouseButtonDown(2)) //{ // if (MqttManager.Instance.boxinformationList.Count > 0) // { // for (int i = 0; i < MqttManager.Instance.boxinformationList.Count; i++) // { // Debug.Log("劲来了"); // if (MqttManager.Instance.boxinformationList[i].ID == "XSCS_01_010100100400100") // { // Debug.Log("删除"); // Destroy(MqttManager.Instance.boxinformationList[i].gameObject); // MqttManager.Instance.boxinformationList.Remove(MqttManager.Instance.boxinformationList[i]); // } // } // } //} } /// /// 解析箱子的数据 /// public void Boxdata(string data) { if (data != null) { //Debug.Log(data); shelfBoxModel = JsonUtility.FromJson(data); for (int i = 0; i < shelfBoxModel.result.Count; i++) { GameObject Box = Instantiate(box); Boxinformation boxinformation = Box.GetComponent(); //Outline outline = Box.AddComponent(); //outline.color = 1; //GameObject childbox = Box.transform.GetChild(0).gameObject; //Outline putline2 = childbox.AddComponent(); //putline2.color = 1; string boxname = $"{shelfBoxModel.result[i].row}-{shelfBoxModel.result[i].column}-{shelfBoxModel.result[i].layer}"; //Debug.Log(boxname); GameObject parentObject = GameObject.Find(boxname); if (parentObject) { //MqttManager.Instance.boxinpots.Add(boxname); Box.transform.SetParent(parentObject.transform, false); boxinformation.ID = shelfBoxModel.result[i].id; boxinformation.type = shelfBoxModel.result[i].type; boxinformation.locationId = shelfBoxModel.result[i].locationId; boxinformation.description = shelfBoxModel.result[i].description; boxinformation.locationState = shelfBoxModel.result[i].locationState; boxinformation.storageState = shelfBoxModel.result[i].storageState; boxinformation.layer = shelfBoxModel.result[i].layer; boxinformation.row = shelfBoxModel.result[i].row; boxinformation.column = shelfBoxModel.result[i].column; boxinformation.specialFlag = shelfBoxModel.result[i].specialFlag; boxinformation.palletNum = shelfBoxModel.result[i].palletNum; boxinformation.itemType = shelfBoxModel.result[i].itemType; boxinformation.isSpecial = shelfBoxModel.result[i].isSpecial; switch (shelfBoxModel.result[i].isSpecial) { case 0: if (shelfBoxModel.result[i].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; case 1: if (shelfBoxModel.result[i].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; default: break; } MqttManager.Instance.boxinformationList.Add(boxinformation); if (shelfBoxModel.result[i].layer.Equals(1)) { GameObject childbox = Box.transform.GetChild(0).gameObject; MqttManager.Instance.firstbox.Add(childbox); MqttManager.Instance.firstbox.Add(Box); } else { GameObject childbox = Box.transform.GetChild(0).gameObject; MqttManager.Instance.secondbox.Add(childbox); MqttManager.Instance.secondbox.Add(Box); } } else { //Destroy(Box); //Debug.LogWarning($"未找到名为 {boxname} 的父对象。物体将被删除。"); } } } } }