总结Unity查找物体的几种方法
Unity中经常需要查找对象,对应的API也有好几种,各自有不同的适用场合。
1. GameObject.Find
通过名字或路径查找游戏对象。
GameObject.Find("GameObject");
GameObject.Find("GameObject/ChildGameObject);
该方法只会返回一个active的,即未隐藏对象。
如果参数包含 '/' 字符,它会像路径名一样遍历层次结构,所以效率低。故建议在Start()或Awake()中查找对象并保存引用,切忌在Update()中动态查找。
官方手册上的两个TIps: 1.如果您希望找到子 GameObject,使用 Transform.Find 通常更容易。
2.如果游戏运行有多个场景,则 Find 将搜索所有场景。
2. Transform.Find
返回该gameobject的子物体(如果未查找到则返回null),如果参数包含 '/' 字符,它会像路径名一样遍历层次结构,并且可以找到隐藏的物体。
需要注意的是Transform.Find的遍历并不会遍历整个层级结构,而是遍历该Transform的物体下面的子层级结构。
3. GameObject.FindWithTag
返回第一个标签为指定值的对象,所以当场景中有多个带相同标签的物体时不一定能返回正确的对象
总结Unity查找物体的几种方法的更多相关文章
- Unity查找物体的四大主流方法及区别
GameObject.Find()优点: 使用简单方便不会因为重名而报错,同时查找的是自上而下的第一个物体缺点 不能查找被隐藏的物体,否则出现“空引用异常”,这是很多新人在查找出现空引用bug的原因. ...
- Unity查找物体的子物体、孙物体
Unity查找物体下的所有物体 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分 ...
- openstack排除查找错误的两种方法
1.openstack日志一般放在什么什么位置?2.如何调试openstack命令执行过程? 我们会经常错误,但是我们碰到错误该怎么做,该如何找到原因.对于openstack有两种办法:在上一篇文章h ...
- UE4 移动物体的几种方法
转自:https://dawnarc.com/2016/06/ue4%E7%A7%BB%E5%8A%A8%E7%89%A9%E4%BD%93%E7%9A%84%E5%87%A0%E7%A7%8D%E6 ...
- 使用 Unity* 进行并行处理的一种方法
本文展示如何使用 Unity* 对游戏进行并行处理,以及如何使用游戏引擎执行与游戏相关的物理.在这个领域内,现实感是成功的一个重要标志.为了模拟真实世界,许多动作需要同时发生,这需要并行处理.创建两个 ...
- unity 实现物体破碎效果的一些方法 - 细雨淅淅
游戏越来越接近现实的感觉,如果有一个真是的 虚拟现实设备,可能我们真的会感觉是在真实世界.场景的逼真是在渲染效果.角色AI.游戏逻辑.物理效果等等一起导致的结果.现在游戏越来越大,除了渲染,物理估计是 ...
- unity 实现物体破碎效果的一些方法
游戏越来越接近现实的感觉,如果有一个真是的 虚拟现实设备,可能我们真的会感觉是在真实世界.场景的逼真是在渲染效果.角色AI.游戏逻辑.物理效果等等一起导致的结果.现在游戏越来越大,除了渲染,物理估计是 ...
- 【转】Java中字符串中子串的查找共有四种方法(indexof())
原文网址:http://wfly2004.blog.163.com/blog/static/1176427201032692927349/ Java中字符串中子串的查找共有四种方法,如下:1.int ...
- Java中字符串中子串的查找共有四种方法(indexof())
Java中字符串中子串的查找共有四种方法(indexof()) Java中字符串中子串的查找共有四种方法,如下:1.int indexOf(String str) :返回第一次出现的指定子字符串在此字 ...
- unity 改变鼠标样式的两种方法
1.第一个直接改变鼠标样式 public var cursorTexture:Texture2D; private var changeFlag = false; function Update(){ ...
随机推荐
- Qt中的线程编程
在基于操作系统的程序设计中,在处理多任务时,可以有多种方法,但效率较高的当属线程方式,下面就来讨论一下在Qt中如何实现线程编程. 先来说一下什么是线程.线程(thread)是操作系统能够进行运算调度的 ...
- drf从入门到飞升仙界 01
web应用模式 # 1.django web框架,专门用来写web项目 # 2.前后端混合开发 - 作为后端人员也需要写模板语法 - 作为前后端都混合时期的全栈工程师,则需要都写,内容比较多 # 3. ...
- Rsync已过时?替代文件同步软件了解一下
随着企业结构分散化的不断扩大,企业内部和企业间的信息互动更加频繁.越来越多的企业要求内部各种业务数据在服务器.数据中心甚至云上能够有实时的同步留存.所以,企业需要文件同步软件,通过在两个或更多设备之间 ...
- SSM框架 拦截器 出现“发现了以元素 'mvc:exclude-mapping' 开头的无效内容。应以 '{"http://www.springframework.org/schema/mvc":mapping}' 之一开头”错误
导致错误位置与代码: spring-mvc.xml文件中的拦截器配置代码,代码如下: <mvc:interceptors> <mvc:interceptor> <mvc: ...
- Coursera Programming Languages, Part B 华盛顿大学 Week 1
来上 programming language 的第二 part 了!这一部分介绍的语言是 Racket,之前就听说过它独特的括号语法,这次来具体了解一下 Racket definitions, fu ...
- Yii2安装步骤
通过 Composer 安装了半天一直网络报错,配置了镜像,又报错依赖,运行跳过依赖,这个命令还是报错,我裂开. 最后只能利用归档文件安装,1.下http://www.yiiframework.com ...
- D. Steps to One
题意 初始有一个空数组\(a\),接下来每次操作会这么做: 在\([1,n]\)中选择一个数,将其拼接在数组\(a\)后. 计算数组\(a\)的\(\gcd\). 如果结果是\(1\),退出. 否则, ...
- vs2015当前不会命中断点,还没有为该文档
经百度,需在项目>项目属性>生成>优化代码的勾去掉>保存>再次F11调试可解决
- Linux-非Root用户-配置深度学习环境
1|01 简介 Anaconda:是一个开源的Python发行版本,其包含了conda.Python等软件包,numpy,pandas,scipy等科学计算包. Conda:包管理器, venv+pi ...
- vi/vim 命令
vim 文件路径 编辑一个文件,英文模式, 按i:输入模式 按Esc:命令模式 输入模式 dd 删除一行 gg 跳到开头 shift+g 跳到结尾 U 撤销 shift+U 恢复撤销 命令模式 :wq ...