建设工程交易网廊坊网站建设优化
项目中需要实现点击“+”按钮展开对应分类下的所有训练科目,再次点击“–”按钮将对应分类下的训练科目隐藏并收起整个面板。对此,编写一个类,将其挂载到树形结构的父类上,代码如下:
using UnityEngine;
using UnityEngine.UI;public class TreeViewParent:MonoBehaviour
{public Button controlBtn;//树形展开/收回按钮public Sprite[] controlBtnSprite;//按钮切换的样式public Transform itemPanel;//树形子分支的父类public float width;//宽度public float itemHeight;//子分支的高度void Start(){controlBtn.onClick.AddListener(onControlBtnClicked);}void onControlBtnClicked(){if(controlBtn.GetComponent<Image>().sprite == controlBtnSprite[0]){controlBtn.GetComponent<Image>().sprite = controlBtnSprite[1];foreach(Transform item in itemPanel)item.gameObject.SetActive(true);transform.GetComponent<RectTransform>().sizeDelta = new Vector2(width, itemHeight * (itemPanel.childCount + 1));}else{controlBtn.GetComponent<Image>().sprite = controlBtnSprite[0];foreach(Transform item in itemPanel)item.gameObject.SetActive(false);transform.GetComponent<RectTransform>().sizeDelta = new Vector2(width, itemHeight);}}
}