一、前言
我以为他是拿到一个纯文本数据,他不知道如何去解析,如果单纯是想解析数据,完全不需要使用树。
看格式的话是的,我们如果拿到一个纯文本数据,并且格式是的的格式的话,可以使用方法去执行纯文本得到一个对象,例:
好了,现在就来讲讲具体怎么做吧~
注:上面提到的是指我之前写的另一篇文章:【游戏开发实战】手把手教你在Unity中使用lua实现红点系统(前缀树 | 数据结构 | 设计模式 | 算法 | 含工程源码)
二、Unity lua环境
三、树节点
1、创建脚本:TreeNode.lua
2、封装节点
四、树逻辑
1、创建脚本:TreeLogic.lua
2、构造测试数据
我们要构造一棵树,得先有数据,根据需求,数据就是一个,简单写一个,
3、构造树
接着我们用测试数据去构造一棵树,我们封装一个方法,其实构造过程我们只需要把注意力放在一个节点的构造上即可,设置节点的名称、值,设置节点的父子节点关系,然后递归执行。
代码如下
接着,我们在方法中调用方法,
到这里,我用了行左右的代码完成了节点的封装和树的构造,接下来就是树的显示了。
4、打印树
在做显示之前,我们不妨封装一个打印树的方法,验证一下我们的树结构,
我们调用一下
五、使用UGUI显示树
1、制作界面预设
2、创建界面脚本:TreePanel.lua
3、展开节点(递归)
封装一个张开节点的方法,里面我用到了递归,代码我写了注释,这里就不多解释啦,
我们需要传入树的根节点,我们给添加一个方法,
接着我们去调用方法,如下
4、关闭节点(递归)
关闭节点也封装一个方法,依然使用了递归,如下