Wiki

Case Status
Log In

Wiki

 
Home ยป API Reference»Writing Custom Actions»Using FSM Variables
Index
Navigation
Community Wiki

Using FSM Variables

Fsm Variables allow the use of named variables instead of hard-coded values as action parameters. See Fsm Variables.

For example:

Instead of:

public float speed;

Use:

public FsmFloat speed;

The user now has the option to enter a speed value or to choose a named Float Variable for the speed. The variable can be manipulated by other actions, exposed in the PlayMakerFsm Inspector, or get/set by other FSMs.

Note: when using an FsmVar, make sure you update the value before using it:

1:
2:
 MyFsmVar.UpdateValue();
 ... = MyFsmVar.GetValue());

Value Property

You can get/set the value of an Fsm Variable using the Value property.

For example:

1:
2:
3:
speed.Value = 10;

lives.Value -= 1;

Default Values

You should set variables to default values in the Reset() function. The user can reset the action at any time using the Settings Menu in the Action Editor. Reset() should set variables to sensible default values.

Most Fsm Variables have assignment overrides so you can just say, for example: speed = 10;

NOTE: You should only use this override in the Reset function since it makes a new instance of the variable.

FsmOwnerDefault

The FsmOwnerDefault type is a little more complicated. It is generally used on Actions that need a Game Object target. An FsmOwnerDefault variable lets the user choose either the Owner of the FSM (the default) or another Game Object as the target.

To get the user's choice use Fsm.GetOwnerDefaultTarget():

1:
2:
3:
public FsmOwnerDefault gameObject;

GameObject go = Fsm.GetOwnerDefaultTarget(gameObject);

NOTE: You will need to check if go is null before proceeding.

Variable Dropdown

If an action parameter should present a dropdown to select a variable (e.g., to store a value in), use the UIHint Attribute with UIHint.Variable.

For example:

1:
2:
3:
[UIHint(UIHint.Variable)]

public FsmFloat storeSpeed;

See also: Action Attributes.

IsNone

Fsm Variables are guaranteed not to be null at runtime. To check if the user selected None in the UI, use the IsNone property.

NOTE: The Fsm Variable is guaranteed not to be null, but its Value can be null! E.g., fsmGameObjectVariable.Value can be null.

 

 

Tags:

Last modified on 6/21/2016 2:12 AM by User.

  • RSS Feed