unity 获取transform的所有子节点

如下,路径存储在dropDownList内

 

复制代码
 1         ValueDropdownList<string> dropDownList = new ValueDropdownList<string>();
 2 
 3         public ValueDropdownList<string> GetActorPaths()
 4         {
 5             if (actor == null) return null;
 6             dropDownList.Clear();
 7             var actorTrans = actor.transform;
 8             dropDownList.Add("root");
 9             GetAllChild(actorTrans, "root");
10             return dropDownList;
11         }
12 
13         public void GetAllChild(Transform rootTrans, string rootPath = "")
14         {
15             if (rootTrans.childCount == 0) return;
16             var count = rootTrans.childCount;
17 
18             for (int i = 0; i < count; i++)
19             {
20                 var nextPath = rootPath;
21                 var trans = rootTrans.GetChild(i);
22                 nextPath = rootPath + "/" + trans.name;
23                 if (trans.GetComponent<BaseActor>())
24                 {
25                     dropDownList.Add(nextPath);
26                 }
27 
28                 GetAllChild(trans, nextPath);
29             }
30         }
复制代码

 

posted @   sun_dust_shadow  阅读(316)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示