Unity GameObject.FindObjectOfType<>(); 按类型查找游戏对象
FindObjectOfType<>() 是按类型查找游戏对象.<>里面填写类型,那要是有多个这种类型的呢?来试一下.
1.
新建一个场景,新建一个Test.cs脚本,内容随便,再新建一个Test02.cs脚本,内容如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class Test02 : MonoBehaviour { public Test test; // Use this for initialization
void Start () {
test = GameObject.FindObjectOfType<Test>();
} // Update is called once per frame
void Update () { }
}
2.
在场景中新建4个Cube,顺序打乱.
3.
把4个Cube弄成下图那样:
4.
把Test02挂到相机上,把Test挂到Cube01上运行,Main Camera 的inspector面板的Test02中Test显示的是Cube01;
再在Cube04上挂一个Test运行试一下,再在Cube03上挂一个Test运行试一下,再在Cube02上挂一个Test运行试一下,
此时共挂了4个,挂的顺序是01-04-03-02,可以看出来总是最后挂的那个被Test02脚本的FindObjectOfType找到.
5.
把Cube02取消激活再运行试一下,再把03取消激活试一下,再把04取消激活试一下.
可以发现系统好像有一个列表挂上Test的就加到列表里,列表里存着所有Test的激活的游戏对象,FindObjectOfType获得的是列表的最后一个,也就是最后一个挂上Test的游戏对象.,而不是任意获取一个.
系统内部具体怎么样不清楚,但根据测试来看好像是这么回事.
Unity GameObject.FindObjectOfType<>(); 按类型查找游戏对象的更多相关文章
- unity编辑器扩展_05(删除游戏对象并具有撤回功能)
代码: [MenuItem("Tools/Delete",false,1)] static void Delete() { GameObject[] go ...
- Unity让带有Rigidbody组件的游戏对象停止运动
Rigidbody rigidbody = transform.GetComponent<Rigidbody>(); rigidbody.velocity = Vector3.zero; ...
- 【Unity3D游戏开发】GameObject.Find()、Transform.Find查找隐藏对象 (十)
GameObjectFindTransformFind查找游戏对象 前置条件 相关API 1 GameObjectFind 2 TransformFind 3 其他查找 实际测试 即使隐藏root节点 ...
- Unity 游戏对象的组件列表
描述: 1 个游戏对象,上面有 4 个组件, 如图: 脚本 Test_01 的内容,如下: using System.Collections; using System.Collections.Gen ...
- Unity GameObject
GameObject 游戏对象 GameObject是unity所有实体的基类 gameObject 获取当前脚本所挂载的游戏对象 一般来说,在属性视图中能看到或修改的属性,我们同样可以在脚本中获取并 ...
- [转] Draw Call未被批处理?告诉你在Unity 5.6中如何查找原因 [复制链接]
Unity在5.6之前的版本中并未提供很直接的方式来查找Draw Call未被批处理的原因,但Unity 5.6在Frame Debugger中新增了一项功能,帮助开发者查找相关信息.今天这篇文章就为 ...
- U3D操作游戏对象
游戏对象:所有出现在场景中的实体都是游戏对象. 一.创建游戏对象 创建游戏对象有两种方式:一是通过在unity中创建模型,而是通过脚本动态创建游戏对象.通过脚本动态创建的灵活性较高,重点也在于通过脚本 ...
- Unity3d 如何找到游戏对象并改变其颜色
//游戏对象 private var obj:GameObject; //渲染器 private var render:Renderer; //贴图 private var texture:Textu ...
- Unity关于获取游戏对象
我觉得Unity里面的Transform 和 GameObject就像两个双胞胎兄弟一样,这俩哥们很要好,我能直接找到你,你也能直接找到我.我看很多人喜欢在类里面去保存GameObject对象.解决G ...
随机推荐
- C#关于如何修改项目文件夹名称
在C# 中修改了解决方案项目名称之后,重命名之后出现错误形式: 解决方法就是 打开你的sln文件 ,将里面的地址改过来就好了 以记事本的方式打开.sln文件 修改其中的相对路径,下图选中部分的路径,这 ...
- ASP.NET常用数据绑定控件优劣总结
本文的初衷在于对Asp.net常用数据绑定控件进行一个概览性的总结,主要分析各种数据绑定控件各自的优缺点,以便在实际的开发中选用合适的控件进行数据绑定,以提高开发效率. 因为这些数据绑定控件大部分都已 ...
- SQLyog使用,连接ubuntu虚拟机(Error No.2003)
1.为mysql设置远程访问权限 mysql> grant all PRIVILEGES on *.* to ‘账号’@’%’ identified by ‘密码′; mysql> flu ...
- C#非泛型集合和泛型集合
第一 : ArrayList(非泛型集合) 与List(泛型集合) ArrayList 是数组的复杂版本.ArrayList 类提供在大多数 Collections 类中提供但不在 Array(数 ...
- C#利用phantomJS抓取AjAX动态页面
在C#中,一般常用的请求方式,就是利用HttpWebRequest创建请求,返回报文.但是有时候遇到到动态加载的页面,却只能抓取部分内容,无法抓取到动态加载的内容. 如果遇到这种的话,推荐使用phan ...
- 一键结束port 5037占用
输入cmd进入dos界面,进入android-sdk-windows\platform-tools目录,执行下面命令启动adb start-server出现下面错误* daemon not runni ...
- UIPageViewController
前言 iPhone 和 iPad 都是通过页控件来展示多个桌面,很多 App 在第一次使用时也会使用页控件来介绍自己的功能,页控件的交互效果非常好,适用于把几个简单的页面充分展示出来. 1.UIPag ...
- 自定义非等高 Cell
1.自定义非等高 Cell介绍 1.1 代码自定义(frame) 新建一个继承自 UITableViewCell 的类. 重写 initWithStyle:reuseIdentifier: 方法. 添 ...
- 【bzoj3209】: 花神的数论题 数论-DP
[bzoj3209]: 花神的数论题 首先二进制数中1的个数最多就是64个 设所有<=n的数里二进制中1的个数为i的有a[i]个 那么答案就是 然后快速幂 求a[i]可以用DP 设在二进制中从 ...
- beijing(数学题)
beijing(数学题) 甲和乙随机进行2n+1场n胜球赛,赌球必须对每场球赛单独押注.由于小明是甲队的铁杆球迷,现在小明希望如果甲最终获胜,那么他获得\(2^{2n-1}\)元,否则乙队获胜,他失去 ...