using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class OpcOrder2 : MonoBehaviour { #region 废了 //public Dropdown dropdown; // Dropdown 组件 //private string originalText; // 存储原始显示的文字 //public static OpcOrder2 opcOrder2; //public string defaultOption = "不想上班!"; // 默认选项 //private bool isDropdownInitialized = false; //private void Start() //{ // // 初始化 Dropdown // if (dropdown == null) // { // dropdown = GetComponent(); // } // // 清空默认选项 // dropdown.options.Clear(); // // 添加默认显示的选项 // dropdown.options.Add(new Dropdown.OptionData(defaultOption)); // 默认选项A // dropdown.captionText.text = defaultOption; // 设置默认显示文字 // // 初始化下拉选项(不包括 A) // dropdown.options.Add(new Dropdown.OptionData("选项 B")); // dropdown.options.Add(new Dropdown.OptionData("选项 C")); // dropdown.options.Add(new Dropdown.OptionData("选项 D")); // // 添加值变化事件 // dropdown.onValueChanged.AddListener(OnDropdownValueChanged); // // 初始化绑定选项的点击事件 // BindToggleEvents(); //} //// 设置默认选项文本,外部可以调用这个方法改变默认文本 //public string SetText(string str) //{ // defaultOption = str; // dropdown.captionText.text = defaultOption; // 设置默认选项的显示文本 // return str; //} //// 当下拉框的值改变时触发 //private void OnDropdownValueChanged(int index) //{ // if (isDropdownInitialized) // { // // 更新下拉框显示的文字为选中的选项 // // 但是不改变默认选项的值 // dropdown.captionText.text = dropdown.options[index].text; // // 执行自定义逻辑 // Debug.Log($"点击了选项:{dropdown.options[index].text}"); // } // isDropdownInitialized = true; //} //// 动态绑定选项的 Toggle 点击事件 //private void BindToggleEvents() //{ // // 获取 Dropdown 的 Template(下拉项模板) // Transform dropdownTemplate = dropdown.transform.Find("Template"); // if (dropdownTemplate != null) // { // Transform viewport = dropdownTemplate.Find("Viewport"); // if (viewport != null) // { // Transform content = viewport.Find("Content"); // if (content != null) // { // // 遍历 Content 下的所有子物体(即下拉列表中的选项) // foreach (Transform option in content) // { // Toggle toggle = option.GetComponent(); // if (toggle != null) // { // string optionText = option.GetComponentInChildren().text; // // 为每个选项绑定点击事件 // toggle.onValueChanged.AddListener((isOn) => // { // if (isOn) // { // HandleOptionClick(optionText); // toggle.isOn = false; // 重置 Toggle 状态,防止选项保持选中 // } // }); // } // } // } // } // } // else // { // Debug.LogWarning("未找到 Dropdown 的 Template 部分,无法绑定点击事件!"); // } //} //// 处理选项点击逻辑 //private void HandleOptionClick(string optionText) //{ // Debug.Log($"点击了选项:{optionText}"); // // 根据点击的选项执行不同的逻辑 // switch (optionText) // { // case "选项 B": // Debug.Log("执行选项 B 的逻辑!"); // break; // case "选项 C": // Debug.Log("执行选项 C 的逻辑!"); // break; // case "选项 D": // Debug.Log("执行选项 D 的逻辑!"); // break; // default: // Debug.LogWarning($"未处理的选项:{optionText}"); // break; // } //} #endregion public GameObject Tip; public Button btn; public GameObject itemPrefab; // 用于生成的Item预制体 public Transform contentTransform; // Content的Transform public JSONReader jsonReader; List> groupedData; public List ItemList; private void Start() { btn.onClick.AddListener(() => { bool isActive = Tip.activeSelf; Tip.SetActive(!isActive); if (ItemList.Count == 1) { Debug.Log("进来了"); CreateItem(2001, 1); } }); } public void CreateItem(int ID, int k) { if (k >= 3) { if (k == 4) k = 1; if (k == 5) k = 2; if (k == 6) k = 3; } // 查找数据 foreach (var kvp in jsonReader.incidentSiteDictionary) { IncidentSite select = kvp.Value; if (select.Name == ID) { groupedData = ParseData(select.Role); } } // 动态生成Item并添加到Content for (int i = 0; i < groupedData[k].Count - 1; i++) { // 生成Item并设置为Content的子物体 GameObject newItem = Instantiate(itemPrefab, contentTransform); ItemList.Add(newItem); // 为每个Item添加按钮点击事件 Button button = newItem.GetComponent