Unity通过字符串添加组件
程序员文章站
2022-07-13 22:10:36
...
之前旧版的Unity提供了AddComponent(string name)的方法来提供字符串添加组件,可是由于性能不高被官方废弃了,那么现在如何使用字符串来添加组件呢?
可是由于需求难免会有需要通过字符串来添加组件,以达到程序灵活性高的目的,当然Unity官方还是明白的,所以提供了public Component AddComponent(Type componentType)的方法来解决。
通过Type.GetType(string typeName)来得到字符串对应的Type。
这里有个问题估计也是很多小伙伴遇到的,Type.GetType(typeName)能轻松获取到自定义类的类型,可是Unity的组件就不行,比如Type.GetType(“Rigidbody”)得到的就是空,来吧加上命名空间Type.GetType(“UnityEngine.Rigidbody”),结果还是不行,就以为获取不到unity的组件了,其实这还是你的名字没有写全的原因,少了是什么程序集。你没有给程序集,那就只有去当前的程序集里面去查找,当然是没有的咯。
我们来看看UnityEngine命名空间有多少的dll,如下图:
而Rigidbody在UnityEngine.PhysicsModule程序集里面,所以正确的获取类型的方式是
Type type = Type.GetType("UnityEngine.Rigidbody, UnityEngine.PhysicsModule")
有同学就要说了,怎么这么长的名字,我怎么知道那个组件是啥名字呢,这里可以通过
string qualifiedName = typeof(Rigidbody).AssemblyQualifiedName
来获取其程序集与类的全名。
上一篇: etcd基本操作
下一篇: Etcd 高可用分布式键值数据库
推荐阅读
-
Angular通过指令动态添加组件问题
-
Unity通过字符串添加组件
-
Unity3D: 给字符串中的部分字体添加颜色突出显示
-
给定一个字符串,问是否能通过添加一个字母将其变为回文串
-
通过vue实现添加axios组件,解决post传参数为null方面的问题(详细教程)
-
Unity通过Attribute代替getComponent获取组件
-
Unity 之 ToLua框架中UI.Dropdown组件动态添加Options
-
Angular通过指令动态添加组件问题
-
通过python对MySQL进行添加修改删除以及字符串的操作方法
-
elementUI之通过指定 Table 组件的 row-class-name 属性来为 Table 中的某一行添加 class改变该行的颜色等样式。