Hello,
I am creating an editor script in which the user should be able to select a script file he wrote, and a function from this script should be invoked sometime during the game.
I have a class which stores a MethodInfo field, and this is the function I am trying to invoke.
Now, if the function receives only a float for example it works, so this line works:
propertyData.transformationFunc.Get().Invoke(propertyData.transformationObj.Get(), new object[] { param });
small explanation - transformationFunc.Get() gives me a MethodInfo, transformationObj.Get() gives me an instance of the class which holds the function I am invoking and param is a float.
Although, what I really want to pass in this function right now is a float and ALSO a Vector3 value. So if I change the function to receive a Vector3 in addition to the float and I try invoking like this:
propertyData.transformationFunc.Get().Invoke(propertyData.transformationObj.Get(), new object[] { param , propertyData.property.Get() });
it doesn’t work and throws the exception stated in the title of this question.
small explanation - propertyData.property.Get() in this case returns UnityEngine.Vector3, so it should be compatible with a function which receives a float and a Vector3.
Thanks all.