入门级Unity查找游戏物体的几种方式解析 | 您所在的位置:网站首页 › 3dmax单个物体显示线框怎么办 › 入门级Unity查找游戏物体的几种方式解析 |
一篇小白也能看懂的查找游戏物体的方式解析 -- Unity 之 查找物体的几种方式。本文通过实际测试得出使用结论,大家进行简单记录,在使用时想不起来可以再来看看,多用几次基本就没有问题了。 一,Object.Find() Object.Find():根据名称找到游戏对象并返回它。 void ObjectFind() { // 找父级 GameObject parent = GameObject.Find("GameObject"); Debug.Log("找父级物体,是否找到:" + (parent != null)); // 找子级 GameObject child = GameObject.Find("Child"); Debug.Log("找子级物体,是否找到:" + (child != null)); // 找父级隐藏物体 GameObject parentHide = GameObject.Find("GameObjectHide"); Debug.Log("找父级隐藏物体,是否找到:" + (parentHide != null)); // 找子级隐藏物体 GameObject childHide = GameObject.Find("ChildHide"); Debug.Log("找子级隐藏物体,是否找到:" + (childHide != null)); }测试结果如下图: ObjectFind 当有使用GameObject.Find("GameObject"), 场景中有多个名为“GameObject”的物体存在时,将每个“GameObject”设置为不同的标签,多运行几次查看结果。
测试场景如下: 测试代码如下: // 找同名物体 GameObject nameObj = GameObject.Find("GameObject"); Debug.Log("找同名,是否找到:" + nameObj.tag);测试结果: 查找顺序是:“自身”(挂载脚本的物体) --> 和自身同层级上面物体 --> 和自身同层级下面物体 --> 自身子物体 --> 自身父物体。 找同名物体 Object.Find()得出结论: 全局查找参数名称游戏物体; 不对禁用(隐藏)物体进行查找; 若有同名物体时根据层级关系进行查找; 使用建议: 有同名物体存在时,尽量不要使用Object.Find()进行查找,或者说使用Object.Find()进行查找时,应控制查找物体命名唯一。 二,GameObject.FindGameObjectWithTag() GameObject.FindGameObjectWithTag() 根据标签查找游戏物体并返回。GameObject.FindGameObjectsWithTag() 根据标签查找当前场景中所有这个标签的游戏物体并返回所有物体的数组。 如下场景:除主摄像机~(Main Camera)~外的所有游戏物体的标签~(Tag)~都修改为Player,进行测试。 测试场景 测试代码如下: void GameObjectFindWithTag() { GameObject tagObj = GameObject.FindGameObjectWithTag("MainCamera"); Debug.Log("根据标签查找游戏物体,是否查到:" + (tagObj != null)); GameObject[] tagObjs = GameObject.FindGameObjectsWithTag("Player"); for (int i = 0; i |
CopyRight 2018-2019 实验室设备网 版权所有 |