# ParameterContainer

ParameterContainer is a component used to perform data sharing etc. between graphs.

Add ParameterContainer to GameObject and set various types of parameters.

# 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 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.

## Search Parameter

- Enter a name in the search bar to search.
  You can also filter by type by selecting the search type.

# Type of parameter

Type | Inspector | Description
--- | --- | ---
Int |  | Signed 32 bit integer
Long |  | Signed 64 bit integer
Float |  | Signed 32 bit floating point number
Bool |  | Boolean
String |  | String
Enum |  | enum type (typable)
Vector2 |  | 2 dimensional vector
Vector3 |  | 3 dimensional vector
Quaternion |  | Quaternion
Rect |  | 2D rectangle
Bounds |  | An axis aligned bounding box.
Color |  | Color
GameObject |  | Reference to GameObject
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)
Variable |  | Parameter type that can be built by you

# About Variable

With Variable you can create your own parameters.

For details, see “Scripting : Variable”.

Scripting : Variable

# Access to parameters

## Create Access Node

You can create access nodes by dragging and dropping parameters into the graph view.

- Drag the parameter’s drag area.
- Drop at the position you want to create in the graph view.
- From the menu, select Get or Set.
  (For Set node, execution nodes of various graphs are created. Please connect so that it will be executed after creation.)

## Access by ParameterReference

In scripts with ParameterReference related classes, you can set parameters that handle values.

### Setting by ParameterReference field

- Set ParameterContainer with the parameter you want to refer to.
- Set parameters from drop down.

### Input from data slot

The Container field also supports input from data slots.

- Create nodes that output ParameterContainer type data in advance.
- Click button in the Container field.
- Select DataSlot.
- Connect data input slot.
- The parameter name to be referred to in the Parameter field is set as a string.
- (Depending on the behaviour, you also need to set the type of Parameter)

For data slots, refer to Data Flow.

### Drag and drop parameters

- Drag the drag area of the parameter you want to set.
- Drop to the ParameterReference you want to reference.

## Create a script that references parameters

You can refer to parameters from your own script.

For details, see “Scripting : Parameter Reference”.

Scripting : Parameter Reference

# 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

Class | Attribute
--- | ---
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

Class | Attribute
--- | ---
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.

Arbor Reference