Unity中通过类名字符串取组件类型的方法(Types.GetType用法)
正常调用Type.GetType取不到组件,因为会先创建实例在获取,而Unity组件无法通过new来创建。
第二种创建方式是通过程序集,具体如下
Assembly.GetExecutingAssembly().GetType(typeName);
但是Unity分为两种程序集,运行时和编辑器时,这两种程序集的名字分别是:
Assembly-CSharp
Assembly-CSharp-Editor
所以取指定程序集,更好的方法是这么取:
var assembly = Assembly.Load(assemblyName); assembly.GetType(typeFullName);
Unity后续版本的API中,新增加了一个Types类,通过Types.GetType可以很方便的获取:
Types.GetType(item.ComponentName, "Assembly-CSharp");
注意,上面的方式只能取到自定义组件,Unity的官方组件在UnityEngine程序集中,但不能通过Types来获取
可以用第二种方法来取,亲测可用
var assembly = Assembly.Load("UnityEngine");
Debug.Log("assembly: " + assembly);
Debug.Log(assembly.GetType("UnityEngine.GameObject"));
//assembly: UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
//UnityEngine.GameObject
Unity中通过类名字符串取组件类型的方法(Types.GetType用法)的更多相关文章
- oracle中如何对字符串进行去除空格的方法
oracle中如何对字符串进行去除空格的方法 今天学习了一下oracle中如何对字符串进行去除空格的方法,这里总结一下.了解到的方法主要有两种:Trim函数以及Replace函数.下面我详细的介绍一下 ...
- win10 64位专业版系统中显示32位dcom组件配置的方法
word.excel是32位的组件,当用户64位系统在运行窗口中输入dcomcnfg命令时,在打开的组件服务管理窗口,是找不到Microsoft Excel.word程序的.另外,Windows 环境 ...
- Java中返回值定义为int类型的 方法return 1返回的是int还是Integer&&finally中return问题
在Java中返回值定义为int类型的 方法return 1:中返回的是Integer值,在返回的时候基本类型值1被封装为Integer类型. 定义一个Test类,在异常处理try中和finally中分 ...
- Swift微博项目--Swift中通过类名字符串创建类以及动态加载控制器的实现
Swift中用类名字符串创建类(用到了命名空间) OC中可以直接通过类名的字符串转换成对应的类来操作,但是Swift中必须用到命名空间,也就是说Swift中通过字符串获取类的方式为NSClassFro ...
- 九、React中的组件、父子组件、React props父组件给子组件传值、子组件给父组件传值、父组件中通过refs获取子组件属性和方法
一.概述 React中的组件: 解决html 标签构建应用的不足. 使用组件的好处:把公共的功能单独抽离成一个文件作为一个组件,哪里里使用哪里引入. [父子组件]:组件的相互调用中,我们把调用者称为父 ...
- Python中判断输入字符串是否为数字的方法
在写物理实验图像处理的脚本时,遇到了一个判断输入的字符串是否为数字的方法 最开始我的思路是这个 test = input() while test.isdigit(): # do something ...
- Swift中对C语言接口缓存的使用以及数组、字符串转为指针类型的方法
由于Swift编程语言属于上层编程语言,而Swift中由于为了低层的高性能计算接口,所以往往需要C语言中的指针类型,由此,在Swift编程语言刚诞生的时候就有了UnsafePointer与Unsafe ...
- strstr() strpos() 获取db报错,判断报错中是否包含字符串,判断错误类型
model中直接获取添加公司的错误.(公司名称不能重复) $enterprise_id = $this->add($enterprisedata ); $err = $this->getD ...
- Unity中UGUI鼠标穿透UI问题的解决方法
不过在使用时需要先获取两个红色显示的变量,graphicRaycaster和eventSystem. 这两个变量分别对应的是Canvas中的GraphicRaycaster组件和创建UI时自动生成的“ ...
随机推荐
- IE 9 以下兼容HTML5
<head> <meta name="viewport" content="width=device-width,initial-scale=1.0&q ...
- sql替换指定字段指定字符串
REPLACE ('字段','string','newstring') UPDATE dw_site SET username =REPLACE (username,'凯鋆','韩优')
- windows7远程桌面连接unbuntu12.04
参考:http://mawenjian.net/p/1221.html http://blog.csdn.net/chengfei112233/article/details/6623672 http ...
- JSP页面转向方式
1.RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个S ...
- php课程---Json格式规范需要注意的小细节
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Lan ...
- dom4j解析xml文档(增删改查)
package itcast.dom4j; import java.io.File; import java.io.FileOutputStream; import java.io.FileWrite ...
- 【iCore3 双核心板】例程三:EXTI中断输入实验——读取ARM按键状态
实验指导书及代码包下载: http://pan.baidu.com/s/1o6xToN4 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 临床试验中PI、CI、SI、COI是指哪些人?
今天为大家介绍的是临床试验的研究者的类型.临床试验的研究者是指在试验所在地负责实施临床试验的人员. 如果一项试验在试验场所由一组人员实施,研究者则为该组人员的负责人或领导者,也称之为主要研究者(Pri ...
- java向压缩文件添加文件
package org.alfresco.repo.bom.util; import java.io.File; import java.io.FileInputStream; import java ...
- Yii源码阅读笔记(二十六)
Application 类中设置路径的方法和调用ServiceLocator(服务定位器)加载运行时的组件的方法注释: /** * Handles the specified request. * 处 ...