unity编写树形结构的文件管理页面

项目中需要实现点击"+"按钮展开对应分类下的所有训练科目,再次点击"--"按钮将对应分类下的训练科目隐藏并收起整个面板。对此,编写一个类,将其挂载到树形结构的父类上,代码如下:

csharp 复制代码
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);
		}
	}
}
相关推荐
全栈小精灵39 分钟前
Winform入门
开发语言·机器学习·c#
用户298698530141 小时前
C#: 如何自动化创建Word可填写表单,告别手动填写时代
后端·c#·.net
绀目澄清2 小时前
Unity 的AI Navigation 系统详细总结
人工智能·unity·游戏引擎
绀目澄清3 小时前
Unity3D AI Navigation 详解:从基础概念到实战应用
unity·游戏引擎
weixin_409383124 小时前
cocos shader流光文字 不显示透明部分
游戏引擎·cocos2d
为自己_带盐4 小时前
在 Blazor Server 中集成 docx-preview.js 实现高保真 Word 预览
javascript·c#·word
绀目澄清4 小时前
Unity3D AI导航系统完全指南:从核心概念到动画耦合
人工智能·unity
__water4 小时前
RHK《模型贴图自由更换位置》
unity·贴图·模型贴图·移动不丢失
JIes__5 小时前
Unity(二)——3D数学
unity·游戏引擎