Unity高版本使用string添加组件-调用方法

由于之前的AddComponent(string name)过时了,使用AddComponent(System.Type t)

Type t = Type.GetType(“CustomClassName”);

 var asmb = System.Reflection.Assembly.Load(assembly);
 Type t = asmb.GetType(assembly + "." + classname);     

如果是系统的类的话,比如Button什么的,
系统函数的命名空间分的很细,不好找,所以请用下面这个方式获取名字:
string className = typeof(Button).AssemblyQualifiedName;
gameObject.AddComponent(t);


    string className = "Method";//类名
    string methodName_1 = "TestStringToMethod_1";//要调用的方法名
    string methodName_2 = "TestStringToMethod_2";//要调用的方法名
    Type t;

    void Start()
    {
        t = Type.GetType(className);//通过string类型的className获得相同名称的类
        var obj = t.Assembly.CreateInstance(className);//创建获取到的类的实例
        
        //没有参数的方法的调用
        MethodInfo method_1 = t.GetMethod(methodName_1);//通过string类型的methodName获得同名的方法
        method_1.Invoke(obj, null);//调用t类实例obj中的方法"TestStringToMethod_1",第二个参数没有额外字段直接使用null
        
        //有参数的方法的调用
        object[] parameters = new object[] { "测试" ,this.gameObject};//所有的参数丢进方法一起运行的字段,可以多个
        MethodInfo method_2 = t.GetMethod(methodName_2);
        method_2.Invoke(obj, parameters);//调用t类实例obj中的方法"TestStringToMethod_2"
    }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值