最新文章
Cocos2d-x游戏开发实例详解7:对象释放时机
03-25 13:59
Cocos2d-x游戏开发实例详解6:自动释放池
03-25 13:55
Cocos2d-x游戏开发实例详解5:神奇的自动释放
03-25 13:49
Cocos2d-x游戏开发实例详解4:游戏主循环
03-25 13:44
Cocos2d-x游戏开发实例详解3:无限滚动地图
03-25 13:37
Cocos2d-x游戏开发实例详解2:开始菜单续
03-25 13:32
unity 查找未激活物体
2015年01月31日 09:27
0 点赞
0 评论
更新于 2025-11-21 15:47
在Unity开发中,有时我们需要查找未激活的物体。下面将为大家详细分享如何查找和检测某个子物体,并给出主要代码。
代码使用说明
将以下函数添加到代码中,其中check参数代表要查询的父物体,name为要查找的子物体的名称。例如,使用return GetTransform(transform, "bone12"); 可以在当前物体的子物体中查找名为 bone12 的物体。
Unity3D脚本代码
Transform GetTransform(Transform check, string name)
{
// 遍历check物体的所有子物体
foreach (Transform t in check.GetComponentsInChildren<Transform>(true))
{
if (t.name == name)
{
return t;
}
// 递归调用,在子物体的子物体中继续查找
Transform result = GetTransform(t, name);
if (result != null)
{
return result;
}
}
return null;
}
代码解释
GetComponentsInChildren<Transform>(true):这个方法用于获取check物体的所有子物体的Transform组件,参数true表示会包含未激活的子物体。- 遍历这些子物体,如果找到名称匹配的子物体,则直接返回该子物体的
Transform。 - 对于每个子物体,还会递归调用
GetTransform方法,在其自身的子物体中继续查找,直到找到目标物体或者遍历完所有子物体。 - 如果最终没有找到匹配的物体,则返回
null。
通过这种方式,我们可以在Unity中查找未激活的子物体。