This is the documentation for Arbor 3.2.4 and earlier.
See Arbor Documentation for the latest documentation.
ParameterContainer is a component used to perform data sharing etc. between graphs.
Add ParameterContainer to GameObject and set various types of parameters.
Contents
Add ParameterContainer
Create GameObject
Click Hierarchy’s Create button, or “Create” in the right-clicked menu,
If you select “Arbor > ParameterContainer”, you can create a GameObject with ParameterContainer added.
Add to GameObject
- Select the GameObject you want to apply.
- Select “Menu > Component > Arbor > ParameterContainer”.
- Or choose Inspector’s “Add Component button > Arbor > ParameterContainer”.
Edit ParameterContainer
Add Parameter
- Click the + button at the lower right of “Parameters”.
- Select the type you want to add.
Edit Parameter
- Select name, value and edit.
Delete Parameter
- Select the parameter and click the – button.
Type of parameter
Type | Inspector | Description |
---|---|---|
Int | Signed 32 bit integer | |
Float | Signed 32 bit floating point number | |
Bool | Boolean | |
GameObject | Reference to GameObject | |
String | String | |
Vector2 | 2 dimensional vector | |
Vector3 | 3 dimensional vector | |
Quaternion | Quaternion | |
Rect | 2D rectangle | |
Bounds | An axis aligned bounding box. | |
Color | Color | |
Transform | Reference to Transform component | |
RectTransform | Reference to RectTransform component | |
Rigidbody | Reference to Rigidbody component | |
Rigidbody2D | Reference to Rigidbody2D component | |
Component | Referece to Component (typable) | |
Long | Signed 64 bit integer | |
Variable | Parameter type that can be built by you |
Abount Variable
With Variable you can create your own parameters.
For details, see “Customizing parameters with Variable”.
Customizing parameters with Variable
How to reference parameters
ParameterReference
By declaring the ParameterReference association class in the field, you can refer to the parameter.
Example script
using UnityEngine; using Arbor; public class TestParameterReference : MonoBehaviour { public IntParameterReference intParameter; void Start () { if (intParameter.parameter != null) { Debug.Log(intParameter.parameter.name + " : " + intParameter.parameter.intValue); } } }
When you add this script to GameObject, it becomes as follows.
Container | Reference ParameterContainer |
Parameter | Parameters to be referred to |
For the getted Parameter, refer to the script reference.
- IntParameterReference
- FloatParameterReference
- BoolParameterReference
- GameObjectParameterReference
- StringParameterReference
- Vector2ParameterReference
- Vector3ParameterReference
- QuaternionParameterReference
- RectParameterReference
- BoundsParameterReference
- ColorParameterReference
- TransformParameterReference
- RectTransformParameterReference
- RigidbodyParameterReference
- Rigidbody2DParameterReference
- ComponentParameterReference
- LongParameterReference
- AnyParameterReference
(Used to refer to Variable parameter)
FlexibleField
Using the FlexibleField association class, you can select and reference constant values, parameter reference, or data flow input.
Example script
using UnityEngine; using Arbor; [AddComponentMenu("")] public class TestFlexibleFieldBehaviour : StateBehaviour { public FlexibleInt flexibleInt; public override void OnStateBegin() { Debug.Log("flexibleInt : " + flexibleInt.value); } }
When this script is added to the state of ArborFSM, it becomes as follows.
You can change the reference method by clicking the button at the right end of the field.
By selecting “Parameter”, you can refer to it like Parameter Reference.
- FlexibleInt
- FlexibleFloat
- FlexibleBool
- FlexibleGameObject
- FlexibleString
- FlexibleVector2
- FlexibleVector3
- FlexibleQuaternion
- FlexibleRect
- FlexibleBounds
- FlexibleColor
- FlexibleTransform
- FlexibleRectTransform
- FlexibleRigidbody
- FlexibleRigidbody2D
- FlexibleComponent
- FlexibleLong
- FlexibleField<T>
(Used to refer to Variable parameter)
Type of constraints that reference
AnyParameterReference and ComponentParameterReference can constrain referencing types by specifying attributes.
Example script
using UnityEngine; using Arbor; [AddComponentMenu("")] public class TestConstraintReferenceBehaviour : StateBehaviour { [ClassExtends(typeof(AudioSource))] public ComponentParameterReference audioSource = new ComponentParameterReference(); [ClassExtends(typeof(AudioSourceCurveType))] public AnyParameterReference audioSourceCurveType = new AnyParameterReference(); public FlexibleAnimationCurve curve = new FlexibleAnimationCurve(AnimationCurve.Linear(0, 0, 1, 1)); // Use this for enter state public override void OnStateBegin() { AudioSource source_ = null; Parameter audioSourceParameter = audioSource.parameter; if (audioSourceParameter != null) { source_ = audioSourceParameter.objectReferenceValue as AudioSource; } AudioSourceCurveType curveType_ = AudioSourceCurveType.CustomRolloff; Parameter curveTypeParameter = audioSourceCurveType.parameter; if (curveTypeParameter != null) { curveTypeParameter.GetVariable<AudioSourceCurveType>(ref curveType_); } AnimationCurve curve_ = curve.value; if (source_ == null) { return; } source_.SetCustomCurve(curveType_, curve_); } }
Example of adding a script
Example ParameterContainer
(AudioSourceCurveType created Variable and registered it)
Available Attributes
Class | Attributes |
---|---|
AnyParameterReference |
|
ComponentParameterReference |
It is also constrained to the Component class. |
FlexibleComponent |
It is also constrained to the Component class. |
About GlobalParameterContainer
GlobalParameterContainer is a component to use when there are parameters that you want to keep even if you change the scene.
Addition of GlobalParameterContainer
- Choose you want to apply GameObject
Select “menu> Component> Arbor> GlobalParameterContainer”.
- Alternatively, select the “Add Component button> Arbor> GlobalParameterContainer” of Inspector.
- Also, you can create a GameObject with GlobalParameterContainer attached from Hierarchy’s Create button “Arbor> GlobalParameterContainer”.
Setting GlobalParameterContainer
- ParameterContainer with parameters to be shared between scenes is created in advance and Prefabized.
- Select GameObject to which GlobalParameterContainer is added.
Specify Prefab of ParameterContainer created in Prefab of Inspector.
Reference parameters via GlobalParameterContainer
By specifying GlobalParameterContainer in the Container field of ParameterReference, parameters can be referred.
Associated built-in script
We will introduce some of the built-in script.
StateBehaviour
CalcParameter | Calculate and change the value of Parameter. |
SetBoolParameterFromUIToggle | Set the value of Toggle to Parameter. |
SetFloatParameterFromUISlider | Set the value of Slider to Parameter. |
ParameterTransition | It determines the value of Parameter and makes a transition. |
Decorator
ParameterCheck | Check Parameter |
ParameterConditionalLoop | Loop by Parameter condition. |
In addition, there are many built-in scripts that get values using FlexibleField, so please refer to the reference.