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);
		}
	}
}
相关推荐
程序猿小D8 小时前
第22节 Node.js JXcore 打包
开发语言·人工智能·vscode·node.js·c#
飞由于度9 小时前
C#中清空DataGridView的方法
开发语言·c#
大熊程序猿10 小时前
《开篇:课程目录》
前端·c#
周杰伦fans11 小时前
C#中用于控制自定义特性(Attribute)
后端·c#
XR-AI-JK11 小时前
Unity VR/MR开发-开发环境准备
unity·vr·mr
nuclear201112 小时前
使用 C# 将 Word、Excel、PDF 和 PPT文档转换为 Markdown 格式
c#·word转markdown·pdf转markdown·excel转markdown·ppt转markdown·doc转markdown·docx转markdown
深圳视觉软件JJ13 小时前
wpf在image控件上快速显示内存图像
c#
T.D.C16 小时前
【渲染】Unity-分析URP的延迟渲染-DeferredShading
unity·游戏引擎
henreash17 小时前
C# dll版本冲突解决方案
开发语言·c#
阿蒙Amon19 小时前
C#封装HttpClient:HTTP请求处理最佳实践
开发语言·http·c#