Unity中通过深度优先算法和广度优先算法打印游戏物体名

前言:又是一个月没写博客了,每次下班都懒得写,觉得浪费时间。。。。

深度优先搜索和广度优先搜索的定义,网络上已经说的很清楚了,我也是看了网上的才懂的,所以就不在这里赘述了。今天讲解的实例,主要是通过自定义拓展方法,再编辑Editor脚本,实现在游戏面板中选中物体,并按照一定顺序获取子物体,打印他们的名字。

这里通过的while而非递归,是因为(明明有简单易用的数据结构,非得写成递归这不是故意炫技?)。action在本例中是一个debug的方法,目的是打印物体名字,当然你也可以用其他方法。

在Unity中创建Editor文件夹,并创建TestDFS脚本,向脚本中添加如下代码:

 

 然后你可以在Unity上的菜单栏中展开GameObject,可找到你定义的方法

 

 观察Hierarchy面板可知,调用深度优先应该输出的是:ABCDEFGH,上图正确。

调用广度优先的正确顺序应该是:ABDFCEGH

 

此代码是上班无意发现我主程写的,比起我一坨屎一样的代码,此代码明显简洁明了许多,我一直以为他是个经验主义者,直到我看见他写的各种算法脚本,肃然起敬,全体起立!!!!

posted @ 2021-09-05 22:35  军酱不是酱  阅读(149)  评论(0编辑  收藏  举报