Resources.FindObjectsOfTypeAll过滤掉预设体的方法
来源:互联网 发布:程序员教程(第4版) 编辑:程序博客网 时间:2024/06/04 20:10
一、问题描述:
功能模块需要将层次面板中的某一个自定义脚本组件的所有实例保存到一个字典里,脚本里有唯一标识这些组件实例的id,这些脚本中有些在程序开始时是隐藏的,即inactive的,GameObject.FindObjectsOfTypeAll<T>()并不能获取到隐藏实例,但是Resources.FindObjectsOfTypeAll<T>()是可以的,但是Resources.FindObjectsOfTypeAll<T>()连同预设体也一并找到了,这并不是我想要的。看到网上有好些人在纠结这个问题,就共享出来吧
二、解决方法。
在添加到字典里时,设定添加的条件:此实例的gameObject所属场景的名字不为空。下面贴出我的部分代码:
FuncReactor[] frs = Resources.FindObjectsOfTypeAll<FuncReactor>(); for (int i = 0; i < frs.Length; ++i) { if (frs[i].gameObject.scene.name != null) { if (allFrs.ContainsKey(frs[i].identifyNo.ToString())) { Debug.LogError("scenename:" + frs[i].gameObject.scene.name + ",same key" + frs[i].identifyNo.ToString()); } else { allFrs.Add(frs[i].identifyNo.ToString(), frs[i]); } } else { Debug.Log("这是一个预设体!"); } }三、注意
假如gameObject是个预设体,它的scene是不为空的,所以根据它的scene是不是为空来判断是不是预设体是达不到目的的。
1 0
- Resources.FindObjectsOfTypeAll过滤掉预设体的方法
- 预设体
- Unity Resources的几个方法
- 如何预设main方法中args的参数值
- python 预设命令行变量代替raw_input 二次输入的方法
- 利用maven中resources插件的copy-resources目标进行资源copy和过滤
- 利用maven中resources插件的copy-resources目标进行资源copy和过滤
- Prefab - 预设体
- MAC 过滤的方法
- Unity中预设体的创建(mac机)
- 给NGUI上的预设体动态添加点击事件
- 使用文件夹内添加组件后的预设体
- Unity3d学习 预设体(prefab)的一些理解
- Resources动态加载NGUI图片的方法
- 重写Resources实现减少OOM的方法
- unity中运用Resources.Load的方法
- Resources.class.getResourceAsStream 获取配置的方法
- 预设置只读文件系统squashfs上的文件的扩展属性的方法
- hadoop自定义分区函数
- Android 让WebView完美支持https双向认证(SSL)
- Linux多台机器配置ssh免登录
- Js与本地代码的交互的一些用法
- 【UE4】 第07讲 【MOBA制作日记】 实现自定义的行走控件
- Resources.FindObjectsOfTypeAll过滤掉预设体的方法
- table中删除多行中的td
- App后台开发运维和架构实践学习总结(4)——APP的注册和登录功能设计
- Puppet的安装部署
- cookie的用法
- 基于 Jenkins 快速搭建持续集成环境
- 有关Android ListView根据项数的大小自动改变高度问题
- 给 Android 开发者的 RxJava 详解
- Weblogic Session总结