using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; /// <summary> /// 设置联动 /// </summary> public class Control_Linkage : MonoBehaviour { /// <summary> /// 打开电视时联动 /// </summary> public List<string> OpenTV = new List<string>(); /// <summary> /// 关闭电视时联动 /// </summary> public List<string> CloseTV = new List<string>(); /// <summary> /// 打开空调时联动 /// </summary> public List<string> OpenAir = new List<string>(); /// <summary> /// 关闭空调时联动 /// </summary> public List<string> CloseAir = new List<string>(); /// <summary> /// 保存选择 /// </summary> public Button Enter; /// <summary> /// 选择条件 /// </summary> public TMP_Dropdown Choosecondition; /// <summary> /// 选择结果 /// </summary> public TMP_Dropdown Chooseoutcome; /// <summary> /// 输入的名称 /// </summary> public TMP_InputField InputName; /// <summary> /// 设置面板 /// </summary> public GameObject SetPanel; /// <summary> /// 保存后显示的面板 /// </summary> public GameObject ClickPanel; /// <summary> /// 克隆的按钮 /// </summary> public GameObject CloneButton; /// <summary> /// 克隆的父物体 /// </summary> public Transform CloneParent; void Start() { InputName.characterLimit = 6; Chooseoutcome.AddOptions(OpenAir); Choosecondition.onValueChanged.AddListener((value) => { Chooseoutcome.options = new List<TMP_Dropdown.OptionData>(); switch (Choosecondition.captionText.text) { case "开空调": Chooseoutcome.AddOptions(OpenAir); break; case "关空调": Chooseoutcome.AddOptions(CloseAir); break; case "开电视": Chooseoutcome.AddOptions(OpenTV); break; case "关电视": Chooseoutcome.AddOptions(CloseTV); break; } }); Enter.onClick.AddListener(() => { EnterChoose(); }); } public void EnterChoose() { GameObject go = Instantiate(CloneButton, CloneParent.transform); go.name = Choosecondition.captionText.text + "|" + Chooseoutcome.captionText.text; go.GetComponentInChildren<TextMeshProUGUI>().text = InputName.text; go.SetActive(true); SetPanel.SetActive(false); ClickPanel.SetActive(true); } }