Hi dude,
I looked into this for you and I think I found a way for you to edit the FSM's. I would suggest making a copy though and having it as your own custom FSM.
So I looked at the Rotate action. It has the perSecond what you are after. It also has different update options.
[Tooltip("Rotate over one second")]
public bool perSecond;
[Tooltip("Repeat every frame.")]
public bool everyFrame;
[Tooltip("Perform the rotation in LateUpdate. This is useful if you want to override the rotation of objects that are animated or otherwise rotated in Update.")]
public bool lateUpdate;
[Tooltip("Perform the rotation in FixedUpdate. This is useful when working with rigid bodies and physics.")]
public bool fixedUpdate;
Then for each of these update options it calls a method in the script called DoRotate:
void DoRotate()
{
var go = Fsm.GetOwnerDefaultTarget(gameObject);
if (go == null)
{
return;
}
// Use vector if specified
var rotate = vector.IsNone ? new Vector3(xAngle.Value, yAngle.Value, zAngle.Value) : vector.Value;
// override any axis
if (!xAngle.IsNone) rotate.x = xAngle.Value;
if (!yAngle.IsNone) rotate.y = yAngle.Value;
if (!zAngle.IsNone) rotate.z = zAngle.Value;
// apply
if (!perSecond)
{
go.transform.Rotate(rotate, space);
}
else
{
go.transform.Rotate(rotate * Time.deltaTime, space);
}
}
So the bit your are interested in is perSecond boolean and the last bit from the DoRotate method:
if (!perSecond)
{
go.transform.Rotate(rotate, space);
}
else
{
go.transform.Rotate(rotate * Time.deltaTime, space);
}
What it does is check to see if the tickbox or boolean is true, if it is try it will do the Time.delta or else part of the if statement. If it is false, it will do the if part - (rotate, space)
If you are new to programming or want an example FSM let me know and I will try and help you out.