例如:我有一个变量string 我想通过这个sting 去拿到对应的类,可以调用这个类的方法拿到这个类的属性,可以这样写
public class ReflectionTest?: MonoBehaviour {
void Start() ? ? { ? ? ? ? GetClass("CeshiFanse"); ? ? }
? ?? ? ? private void GetClass(string className) ? ? { ? ? ? ? //通过string类型的strClass获得同名类“type” ? ? ? ? Type type = Type.GetType(className); ? ? ? ? //创建type类的实例 "obj" ? ? ? ? object obj = System.Activator.CreateInstance(type); ? ? ? ? //拿到这个类的 同名String strw ? ? ? ? FieldInfo fieldInfo = type.GetField("strw"); ? ? ? ? Debug.Log(fieldInfo.GetValue(obj)); ? ? ? ? //拿到这个类的同名 方法 ? ? ? ? MethodInfo method = type.GetMethod("Ceshi"); ? ? ? ? //调用方法 ? ? ? ? method.Invoke(obj, null); ? ? ? ?? ? ? }
}
public class CeshiFanse : MonoBehaviour
{ ? ? public string tran="你好嘛"; ? ? public string strw = "ssuiso"; ? ? private void Start() ? ? { ? ? ? ? strw = "6666"; ? ? } ? ? public void Ceshi()? ? ? { ? ? ? ? Debug.Log("你好"); ? ? } ? ?? }
注意:如果脚本继承了MonoBehaviour类,这个脚本一定要挂在面板上,没有继承就不用,否则会报空
|