using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; using UnityEngine.UI; public class LineGroupItem : MonoBehaviour { public string id; /// /// 标题 /// public Text info_text; /// /// 删除 /// public Button delete_button; /// /// 修改 /// public Button edit_button; /// /// 展开 /// public Button expand_button; /// /// 线缆容器 /// public GameObject line_item_content; /// /// 线缆组中的线 /// public List child_line_items = new List(); bool do_init = false; // Start is called before the first frame update void Start() { if (!do_init) Init(); } public void Init() { do_init = true; expand_button.onClick.AddListener(() => { showRightPop(); //return; //line_item_content.SetActive(!line_item_content.activeSelf); }); delete_button.onClick.AddListener(() => { //删除确认 SecondConfirmPanel.DeleteConform((delete) => { if (delete) { var id = ""; //foreach (var item in LineQuery.Inst.keyValues) //{ // if (item.Key == info_text.text) // { // id = item.Value; // break; // } //} id = this.id; if (!string.IsNullOrEmpty(id)) { LineQuery.Inst.StartCoroutine(LineQuery.Inst.deleteJsonCoroutine(id, (x) => { if (!string.IsNullOrEmpty(x)) { for (int i = 0; i < PatternChoose.Inst.xianlan.transform.childCount; i++) { if (PatternChoose.Inst.xianlan.transform.GetChild(i).name == info_text.text) { DestroyImmediate(PatternChoose.Inst.xianlan.transform.GetChild(i).gameObject); break; } } LineObjectPool.Instance.PushItemToPool(this); } })); } else { LineObjectPool.Instance.PushItemToPool(this); } } }); }); edit_button.onClick.AddListener(() => { LineGroupManager.Instance.line_group_editName_inputfield.text = string.Empty; showRightPop(); LineGroupManager.Instance.edit_group_pop.SetActive(true); }); } /// /// 添加线缆 /// [ContextMenu("添加")] public void AddLineItem(string info, List lines, List strings) { var item = LineObjectPool.Instance.GetItemFromPool(); item.transform.SetParent(line_item_content.transform); child_line_items.Add(item); //传递数据 item.info_text.text = info; item.item_tittle_start_text.text = strings[0].Replace("$", " "); item.item_tittle_end_text.text = strings[1].Replace("$", " "); item.gameObject.GetComponent().lines = lines; } /// /// 回收至对象池 /// public void Clear() { id = string.Empty; info_text.text = string.Empty; for (int i = 0; i < child_line_items.Count; i++) { LineObjectPool.Instance.PushItemToPool(child_line_items[i]); } child_line_items.Clear(); } public void ClearChilds() { for (int i = 0; i < child_line_items.Count; i++) { LineObjectPool.Instance.PushItemToPool(child_line_items[i]); } child_line_items.Clear(); } /// /// 显示右侧(线缆目录) /// public void showRightPop() { LineGroupManager.Instance.selected_group_name = info_text.text; LineGroupManager.Instance.selected_group_ID = this.id; LineGroupManager.Instance.Empty_line_content_right(); for (int i = 0; i < child_line_items.Count; i++) { LineItem item = LineObjectPool.Instance.GetItemFromPool(); item.transform.SetParent(LineGroupManager.Instance.line_content_right.transform); item.info_text.text = child_line_items[i].info_text.text; item.item_tittle_start_text.text = child_line_items[i].item_tittle_start_text.text; item.item_tittle_end_text.text = child_line_items[i].item_tittle_end_text.text; item.lineGroupItem = child_line_items[i].transform.parent.parent.GetComponent(); item.gameObject.GetComponent().lines = child_line_items[i].GetComponent().lines; } } }