# Behaviour Reference

Here is a reference built-in Behaviour of Arbor.

## Agent

Class Name | Description
--- | ---
AgentEscape | Move the Agent to escape from Target.
AgentFollow | Move Agent so that it approaches Target.
AgentLookAtPosition | Rotates in the direction of the specified position.
AgentLookAtTransform | Rotates in the direction of the specified Transform.
AgentMoveOnWaypoint | Move the Agent along the Waypoint.
AgentPatrol | To patrol the vicinity of the specified location.
AgentStop | Stop the Agent
AgentWarpToPosition | Warp the Agent to the Target position.
AgentWarpToTransform | Warp the Agent to the Target position.

## Animator

Class Name | Description
--- | ---
AnimatorCrossFade | Transit the state of Animator.
AnimatorSetLayerWeight | Set weight of Animator's layer.
CalcAnimatorParameter | Calculate and change the parameter of Animator.

## Audio

Class Name | Description
--- | ---
PlaySound | Play AudioSource.
PlaySoundAtPoint | Play the sound at the specified point.
PlaySoundAtTransform | Play the sound at the specified Transform position.
StopSound | Stop AudioSource.

## BehaviourTree

Class Name | Description
--- | ---
SubBehaviourTree | Play a child hierarchy Behavior Tree
SubBehaviourTreeReference | Play external BehaviourTree as a child graph.

## Collision

Class Name | Description
--- | ---
OnCollisionEnterDestroy | When OnCollisionEnter is called, it will destroy an opponent GameObject.
OnCollisionEnterStore | When OnCollisionEnter is called, it will store an opponent GameObject to the parameter.
OnCollisionExitDestroy | When OnCollisionExit is called, it will destroy an opponent GameObject.
OnCollisionExitStore | When OnCollisionExit is called, it will store an opponent GameObject to the parameter.
OnControllerColliderHitDestroy | When OnControllerColliderHit is called, it will destroy an opponent GameObject.
OnControllerColliderHitStore | When OnControllerColliderHit is called, it will store an opponent GameObject to the parameter.
OnTriggerEnterDestroy | When OnTriggerEnter is called, it will destroy an opponent GameObject.
OnTriggerEnterStore | When OnTriggerEnter is called, it will store an opponent GameObject to the parameter.
OnTriggerExitDestroy | When OnTriggerExit is called, it will destroy an opponent GameObject.
OnTriggerExitStore | When OnTriggerExit is called, it will store an opponent GameObject to the parameter.

## Collision2D

Class Name | Description
--- | ---
OnCollisionEnter2DDestroy | When OnCollisionEnter2D is called, it will destroy an opponent GameObject.
OnCollisionEnter2DStore | When OnCollisionEnter2D is called, it will store an opponent GameObject to the parameter.
OnCollisionExit2DDestroy | When OnCollisionExit2D is called, it will destroy an opponent GameObject.
OnCollisionExit2DStore | When OnCollisionExit2D is called, it will store an opponent GameObject to the parameter.
OnTriggerEnter2DDestroy | When OnTriggerEnter2D is called, it will destroy an opponent GameObject.
OnTriggerEnter2DStore | When OnTriggerEnter2D is called, it will store an opponent GameObject to the parameter.
OnTriggerExit2DDestroy | When OnTriggerExit2D is called, it will destroy an opponent GameObject.
OnTriggerExit2DStore | When OnTriggerExit2D is called, it will store an opponent GameObject to the parameter.

## Component

Class Name | Description
--- | ---
ActivateBehaviour | Activate Behaviour.
InvokeMethod | Call the method of Component.

## GameObject

Class Name | Description
--- | ---
ActivateGameObject | It will switch the active GameObject.
BroadcastMessageGameObject | It sends a message to the specified GameObject and its child objects.
DestroyGameObject | It will remove the GameObject.
FindGameObject | GameObject search by the name is then stored in the parameter.
FindWithTagGameObject | GameObject the searches in the tag and then stored in the parameter.
InstantiateGameObject | GameObject the searches in the tag and then stored in the parameter.
LookAtGameObject | We will watch the specified Transform.
SendEventGameObject | It will send the event.
SendMessageGameObject | It will send a message to the GameObject.
SendMessageUpwardsGameObject | It will send a message to the GameObject and all of the parent object.

## Legacy

### UI

Class Name | Description
--- | ---
UISetSliderFromParameter | Set the value of Slider from Parameter.
UISetToggleFromParameter | Set the Toggle from Parameter.

## ObjectPooling

Class Name | Description
--- | ---
AdvancedPooling | Instantiate in advance and register to ObjectPool.

## Parameter

Class Name | Description
--- | ---
CalcParameter | Change by calculating the value of the Parameter.
SetBoolParameterFromUIToggle | The value of the Toggle set to Parameter.
SetFloatParameterFromUISlider | Set the value of the Slider to Parameter.

## Physics

Class Name | Description
--- | ---
ActivateCollider | Activate Collider.
AddForceRigidbody | We will apply a force to Rigidbody.
AddVelocityRigidbody | It will add the velocity of Rigidbody.
SetVelocityRigidbody | Set the velocity of Rigidbody.

## Physics2D

Class Name | Description
--- | ---
AddForceRigidbody2D | We will apply a force to Rigidbody2D.
AddVelocityRigidbody2D | It will add the velocity of Rigidbody2D.
SetVelocityRigidbody2D | Set the velocity of Rigidbody2D.

## Renderer

Class Name | Description
--- | ---
ActivateRenderer | Activate Renderer.
SetSprite | Set the Sprite.

## Scene

Class Name | Description
--- | ---
LoadLevel | Load the specified scene.
SetActiveScene | Set the scene to be active.
UnloadLevel | Unload the specified scene from the current scene.

## StateMachine

Class Name | Description
--- | ---
EndStateMachine | End the state machine now and return to the parent graph.
SubStateMachine | Play a child hierarchy ArborFSM.
SubStateMachineReference | Play external ArborFSM as a child graph.

## Transform

Class Name | Description
--- | ---
TransformRotate | Rotate the transform.
TransformSetPosition | Set the position of Transform.
TransformSetRotation | Set the rotation of Transform.
TransformSetScale | Set the scale of Transform.
TransformTranslate | Moves the transform.

## Transition

Class Name | Description
--- | ---
AnimatorStateTransition | Transit by referring to the state of Animator.
BackToStartState | Back to the start state.
CalculatorTransition | It will transition by the calculation result
DistanceTransition | It will transition the state by the distance between the target of GameObject.
ExistsGameObjectTransition | GameObject is I will transition on whether exists.
GoToTransition | It will transition to force the state.
ParameterTransition | It determines the value of Parameter and makes a transition.
RandomTransition | Transit randomly.
TimeTransition | It will transition the state after the lapse of time.
TriggerTransition | It will transition the state when the trigger has been sent.

### Collision

Class Name | Description
--- | ---
OnCollisionEnterTransition | It will transition the state when the OnCollisionEnter is called.
OnCollisionExitTransition | It will transition the state when the OnCollisionExit is called.
OnCollisionStayTransition | It will transition the state when the OnCollisionStay is called.
OnControllerColliderHitTransition | It will transition the state when the OnControllerColliderHit is called.
OnTriggerEnterTransition | It will transition the state when the OnTriggerEnter is called.
OnTriggerExitTransition | It will transition the state when the OnTriggerExit is called.
OnTriggerStayTransition | It will transition the state when the OnTriggerStay is called.

### Collision2D

Class Name | Description
--- | ---
OnCollisionEnter2DTransition | It will transition the state when the OnCollisionEnter2D is called.
OnCollisionExit2DTransition | It will transition the state when the OnCollisionExit2D is called.
OnCollisionStay2DTransition | It will transition the state when the OnCollisionStay2D is called.
OnTriggerEnter2DTransition | It will transition the state when the OnTriggerEnter2D is called.
OnTriggerExit2DTransition | It will transition the state when the OnTriggerExit2D is called.
OnTriggerStay2DTransition | It will transition the state when the OnTriggerStay2D is called.

### EventSystems

Class Name | Description
--- | ---
OnPointerClickTransition | It will transition the state when the OnPointerClick is called.
OnPointerDownTransition | It will transition the state when the OnPointerDown is called.
OnPointerEnterTransition | It will transition the state when the OnPointerEnter is called.
OnPointerExitTransition | It will transition the state when the OnPointerExit is called.
OnPointerUpTransition | It will transition the state when the OnPointerUp is called.

### Input

Class Name | Description
--- | ---
AnyKeyDownTransition | It will transition the state when any key is pressed.
AnyKeyTransition | It will transition the state on whether any key is pressed.
ButtonDownTransition | It will transition the state when the button is pressed.
ButtonTransition | It will transition the state on whether Button is pressed.
ButtonUpTransition | It will transition the state when the button is released.
KeyDownTransition | It will transition the state when a key is pressed.
KeyTransition | It will transition the state on whether is Key pressed.
KeyUpTransition | It will transition the state on whether is Key released.
MouseButtonDownTransition | It will transition the state when the mouse button is pressed.
MouseButtonTransition | It will transition the state on whether the mouse button is pressed.
MouseButtonUpTransition | It will transition the state when the mouse button is released.
OnMouseDownTransition | It will transition the state when the OnMouseDown is called.
OnMouseDragTransition | It will transition the state when the OnMouseDrag is called.
OnMouseEnterTransition | It will transition the state when the OnMouseEnter is called.
OnMouseExitTransition | It will transition the state when the OnMouseExit is called.
OnMouseOverTransition | It will transition the state when the OnMouseOver is called.
OnMouseUpAsButtonTransition | It will transition the state when the OnMouseUpAdButton is called.
OnMouseUpTransition | It will transition the state when the OnMouseUp is called.

### Physics

Class Name | Description
--- | ---
RaycastTransition | It will transition by Ray cast.

### Physics2D

Class Name | Description
--- | ---
Raycast2DTransition | It will transition by 2D of Ray cast.

### UI

Class Name | Description
--- | ---
UIButtonTransition | Click the button to make a transition.
UISliderTransition | It will transition by the value of the slider.
UIToggleTransition | It will transition by the toggle.

## Trigger

Class Name | Description
--- | ---
BroadcastTrigger | It will send a trigger to a GameObject and child objects.
SendTrigger | It will send a trigger.
SendTriggerGameObject | Send the trigger to all of ArborFSM that is assigned to the GameObject.
SendTriggerUpwards | Send the trigger to all of ArborFSM that is assigned to the GameObject.

## Tween

Class Name | Description
--- | ---
TweenBlendShapeWeight | Tween Weight value of BlendShape.
TweenCanvasGroupAlpha | Gradually change Alpha of Canvas Group.
TweenColor | Gradually change color of Renderer.
TweenColorSimple | Gradually change color of Renderer.
TweenMaterialFloat | Tween Float value of material.
TweenMaterialVector2 | Tween Vector2 of Material.
TweenPosition | Gradually change position.
TweenRigidbody2DPosition | Gradually change position of Rigidbody2D.
TweenRigidbody2DRotation | Gradually change rotaion of Rigidbody2D.
TweenRigidbodyPosition | Gradually change position of Rigidbody.
TweenRigidbodyRotation | Gradually change rotaion of Rigidbody.
TweenRotation | Gradually change rotaion.
TweenScale | Gradually change scale.
TweenTextureOffset | Gradually change UV cordinates of Texture.
TweenTextureScale | Gradually change Tiling of Texture.
TweenTimeScale | Tween Time.timeScale.

## UI

Class Name | Description
--- | ---
UISetImage | Set the Sprite to Image.
UISetSlider | Set the value of Slider.
UISetText | Set the Text.
UISetTextFromParameter | Set the Text from Parameter.
UISetToggle | Set the Toggle.

### Tween

Class Name | Description
--- | ---
UITweenColor | Gradually change color of UI.
UITweenColorSimple | Gradually change color of UI.
UITweenPosition | Gradually change position of UI.
UITweenSize | Gradually change size of UI.