本文主要是介绍Unity中将string转换为类并调用其中的方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Unity最常用的编程语言就是C#,今天就利用C#的反射,将string字符串转换为类,并调用其中的方法。
首先在Unity中创建一个C#脚本:Test_StringToMethod。在这个脚本中,我们在随便创建一个测试类。
public class Method
{public void TestStringToMethod_1(){Debug.Log("转换成功,成功调用方法一!");}public void TestStringToMethod_2(string str ,GameObject obj){Debug.Log("转换成功,成功调用方法二!参数:" + str);Debug.Log("转换成功,成功调用方法二!参数:" + obj.name);}
}
接下来。利用反射技术,将字符串转化为类名,并调用其中的方法。
这里需要引用命名空间
using System.Reflection;//反射的引用
首先定义几个变量
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"}
整体代码
接下来看一些在Unity中运行结果
这篇关于Unity中将string转换为类并调用其中的方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!