well, as far as my limited understanding sees it, the extra layer is intended. This is my
theoryIn your example, the Vector3 would be a variable in that script. If you change it, you change the variable in the script.
However, if we define a FsmVector3 in a script, that is the variable there. Then in the action browser, we set the Value of that FsmVector3 to a real variable, whcih we define in the Fsm main class (I have no idea how the individual FSM classes are called). So now if we set FsmVector3.Value to something, we're not actually changing an instantiate variable in the script, but the "real" Vector3 in the Fsm class.
Did that make sense?
Ah and yes, FsmVariables only for exposed variables. You can also expose variables that are not FsmVariables, but you can't get or set them from another variable.
Now as for your second thing, there I can definitely help you
No idea where the api is , but you really don't need it. Each and every important thing has a wonderful clearly structured code snippet shipped with Playmaker , called actions
. Just open the send event actions to see what those individual arguments do. I think pretty much everyone's doing it that way .