ユニティではわかりました Invoke を使用して、文字列形式で指定されたメソッドを呼び出そうとしています。パラメータなしで動作させることはできますが、パラメータを使用すると失敗し、理解できません。
public string SetCVar(string args)
{
return "hello";
}
public string ParseCmdString(string str)
{
// Find Cmd string
string cmdStr = str.Split(' ')[0];
if(cCmds.ContainsKey(cmdStr.ToLower()))
{
Cmd cmd = cCmds[cmdStr];
System.Type objType = cmd.obj.GetType();
System.Reflection.MethodInfo method = objType.GetMethod(cmd.method, new System.Type[]{typeof(string)});
return (string)method.Invoke(objType, new object[]{str});
}
return "Command not found!";
}
パラメータがない場合SetCVar
は、それ以外の場合は問題ありません。次のエラーが発生します。
ArgumentException: failed to convert parameters