using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; /// /// 分类实例脚本 /// public class ClassificationItem : MonoBehaviour { /// /// 是否已展开菜单 /// public bool is_expanded; /// /// 分类名称 /// public TextMeshProUGUI ClassificationName; /// /// 一级标题按钮 /// public Button FirstTittle; /// /// 展开图标 /// public Image Expand; /// /// 收起图标 /// public Image Collapse; /// /// 二级菜单容器 /// public RectTransform DeviceContent; /// /// 容器物体 /// public RectTransform ParentContent; /// /// 设备预制体 /// public static DeviceItem DeviceItemPrefab; /// /// 默认颜色 /// public Color NormalColor = new Color(0.066f, 0.316f, 0.598f); /// /// 高亮颜色 /// public Color HighlightColor = new Color(0, 0.766f, 1); /// /// 实例初始化 /// public void Init(ClassificationData classificationData) { FirstTittle.onClick.AddListener(OnFirstTittleClick); ParentContent = transform.parent.GetComponent(); if (classificationData == null) return; //实例化分类并进一步实例化设备及其对应信息 ClassificationName.text = classificationData.classification; if (DeviceItemPrefab == null) DeviceItemPrefab = Resources.Load("Prefabs/UI/DeviceItem"); for (int i = 0; i < classificationData.devices.Length; i++) { var inst = Instantiate(DeviceItemPrefab, DeviceContent); inst.Init(classificationData.devices[i]); } } /// /// 单击一级菜单事件 /// private void OnFirstTittleClick() { is_expanded = !is_expanded; Expand.gameObject.SetActive(!is_expanded); Collapse.gameObject.SetActive(is_expanded); DeviceContent.gameObject.SetActive(is_expanded); //刷新布局 LayoutRebuilder.ForceRebuildLayoutImmediate(ParentContent); } }