var searchIndex = [
    
    {
        "uri": "/manual/updateguide/update3_7.html",
        "title": "Updating to Arbor 3.7",
        "tags": [],
        "description": "",
        "summary": "When updating from Arbor 3.6.x or earlier to 3.7.0 or later, a compile error may occur.\nCheck and correct the following items.\nMember change of IInputSlot Deleted \u0026ldquo;Input\u0026rdquo; in the method name.\n   Old member name New member name     SetInputBranch SetBranch   RemoveInputBranch RemoveBranch   GetInputBranch GetBranch   IsConnectedInput IsConnected    Member change of IOutputSlot Deleted \u0026ldquo;Output\u0026rdquo; in the method name.",
        "content": "When updating from Arbor 3.6.x or earlier to 3.7.0 or later, a compile error may occur.\nCheck and correct the following items.\nMember change of IInputSlot Deleted \u0026ldquo;Input\u0026rdquo; in the method name.\n   Old member name New member name     SetInputBranch SetBranch   RemoveInputBranch RemoveBranch   GetInputBranch GetBranch   IsConnectedInput IsConnected    Member change of IOutputSlot Deleted \u0026ldquo;Output\u0026rdquo; in the method name.\n   Old member name New member name     AddOutputBranch AddBranch   RemoveOutputBranch RemoveBranch   GetOutputBranch GetBranch   IsConnectedOutput IsConnected    Change method to property.\n   Old member New member     GetOutputBranchCount method branchCount property    Member change of RerouteSlot Changed some members to Obsolete.\n   Obsolete memer Alternate member     SetInputBranch(branch) inputSlot.SetBranch(branch)   RemoveInputBranch(branch) inputSlot.RemoveBranch(branch)   GetInputBranch() inputSlot.GetBranch()   IsConnectedInput(branch) inputSlot.IsConnected(branch)   AddOutputBranch(branch) outputSlot.AddBranch(branch)   RemoveOutputBranch(branch) outputSlot.RemoveBranch(branch)   GetOutputBranchCount() outputSlot.branchCount   GetOutputBranch(index) outputSlot.GetBranch(index)   IsConnectedOutput(branch) outputSlot.IsConnected(branch)    Member change of Parameter Changed some members to Obsolete.\n   Obsolete member Alternate member     GetVariable\u0026lt;TVariable\u0026gt;(ref TVariable value) GetVariable\u0026lt;TVariable\u0026gt;(TVariable defaultValue) TryGetVariable\u0026lt;TVariable\u0026gt;(out TVariable)    "
    },
    {
        "uri": "/manual/updateguide/update3_6.html",
        "title": "Updating to Arbor 3.6",
        "tags": [],
        "description": "",
        "summary": "When updating from Arbor 3.5.x or earlier to 3.6.0 or later, a compile error may occur.\nCheck and correct the following items.\nFlexibleField handling scene objects I changed to FlexibleSceneObjectType where I used FlexibleType.\nMake sure that the following code is written in your script, and correct it.\n1 2  //flexible.type == FlexibleType.Constant // Error flexible.type == FlexibleSceneObjectType.Constant // Fix this way.    Applicable FlexibleField class  FlexibleGameObject FlexibleComponent FlexibleTransform FlexibleRectTransform FlexibleRigidbody FlexibleRigidbody2D  asmdef file name Fixed a typo in the Arbor.",
        "content": "When updating from Arbor 3.5.x or earlier to 3.6.0 or later, a compile error may occur.\nCheck and correct the following items.\nFlexibleField handling scene objects I changed to FlexibleSceneObjectType where I used FlexibleType.\nMake sure that the following code is written in your script, and correct it.\n1 2  //flexible.type == FlexibleType.Constant // Error flexible.type == FlexibleSceneObjectType.Constant // Fix this way.    Applicable FlexibleField class  FlexibleGameObject FlexibleComponent FlexibleTransform FlexibleRectTransform FlexibleRigidbody FlexibleRigidbody2D  asmdef file name Fixed a typo in the Arbor.BuiltInBehaviours.asmdef file name.\n If you have defined your own asmdef that references Arbor.BuiltInBehaviours.asmdef, modify the name to Arbor.BuiltInBehaviours.\n(If Use GUIDs is enabled in Unity 2019.1 or later, this is not necessary because it is not a reference by name)  Also, along with this correction, you may receive an error that the asmdef can not be found only once immediately after the update, but there is no problem in operation.\n"
    },
    {
        "uri": "/manual/extra/package.html",
        "title": "Use with PackageManager",
        "tags": [],
        "description": "",
        "summary": "Describes how to use Arbor from PackageManager.\nInstallation procedure   Copy Assets/Plugins/Arbor folder to any folder\n（Here, the placed Arbor folder called the Arbor package folder）\n  Register in PackageManager. There are the following ways to register.\n Registration in PackageManager window  Open PackageManager window and select \u0026ldquo;Add package from disk \u0026hellip;\u0026rdquo; from + button. Select package.json in the Arbor package folder.   Direct change of manifest.",
        "content": "Describes how to use Arbor from PackageManager.\nInstallation procedure   Copy Assets/Plugins/Arbor folder to any folder\n（Here, the placed Arbor folder called the Arbor package folder）\n  Register in PackageManager. There are the following ways to register.\n Registration in PackageManager window  Open PackageManager window and select \u0026ldquo;Add package from disk \u0026hellip;\u0026rdquo; from + button. Select package.json in the Arbor package folder.   Direct change of manifest.json  Open {project folder}/Packages/manifest.json in code editor Add \u0026ldquo;com.caitsithware.arbor\u0026rdquo; to \u0026ldquo;dependencies\u0026rdquo; as below      { \u0026#34;dependencies\u0026#34;: { \u0026#34;{Other package}\u0026#34; : \u0026#34;{Other package}\u0026#34;, \u0026#34;com.caitsithware.arbor\u0026#34;: \u0026#34;file:{Arbor package folder path}\u0026#34; } }  When updating, delete the Arbor package folder once and relocate the latest Arbor folder, or arrange the Arbor package folder separately for each version.  Notes   If unintended behavior or exceptions occur in ArborEditor immediately after installation, please reopen the project once.\n  If you change the location of Arbor package folder after registering to PackageManager, it is necessary to redo \u0026ldquo;Installation procedure 2.\u0026rdquo;\n  About version control\n If you register from PackageManager window, please note that the absolute path is written to manifest.json.\nPlace the Arbor package folder in repository management, and set its relative path in manifest.json. PackageManager also supports git, but the act of publishing this asset to a public git server is a violation of the EULA.\nIf you want to create a repository for packages on git, set the repository to private and ask for access using features such as personal access tokens.    For more information about PackageManager, refer to Unity Manual: PackageManager.\n  "
    },
    {
        "uri": "/manual/scripting/behaviourattribute/addbehaviourmenu.html",
        "title": "AddBehaviourMenu",
        "tags": [],
        "description": "",
        "summary": "Attribute that can specify the path in the add behaviour menu.\nScript Reference : AddBehaviourMenu\nExample Script Create a script named TestAddBehaviourMenu and write the following code.\n1 2 3 4 5 6 7 8 9 10  using UnityEngine;\rusing System.Collections;\rusing System.Collections.Generic;\rusing Arbor;\r[AddBehaviourMenu(\u0026#34;ManualExample/TestAddBehaviourMenu\u0026#34;)]\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestAddBehaviourMenu : StateBehaviour\r{\r}    Operation check Click \u0026ldquo;Add Behavior\u0026rdquo; of the state and check it in the add behaviour menu window.",
        "content": "Attribute that can specify the path in the add behaviour menu.\nScript Reference : AddBehaviourMenu\nExample Script Create a script named TestAddBehaviourMenu and write the following code.\n1 2 3 4 5 6 7 8 9 10  using UnityEngine;\rusing System.Collections;\rusing System.Collections.Generic;\rusing Arbor;\r[AddBehaviourMenu(\u0026#34;ManualExample/TestAddBehaviourMenu\u0026#34;)]\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestAddBehaviourMenu : StateBehaviour\r{\r}    Operation check Click \u0026ldquo;Add Behavior\u0026rdquo; of the state and check it in the add behaviour menu window.\n\r "
    },
    {
        "uri": "/manual/dataflow/about-dataflow.html",
        "title": "What is a Data Flow?",
        "tags": [],
        "description": "",
        "summary": "Data flow is the flow of data for passing the processing result of a node to other nodes.\nConnecting data input / output slots allows you to take advantage of data flow.\nExample In the example using the built-in script, the following data flow can be easily assembled.\n\r  InstantiateGameObject instantiated prefab. Output instantiated GameObject. Get the Rigidbody component with Rigidbody.Get. Add force with AddForceRigidbody to the received Rigidbody.",
        "content": "Data flow is the flow of data for passing the processing result of a node to other nodes.\nConnecting data input / output slots allows you to take advantage of data flow.\nExample In the example using the built-in script, the following data flow can be easily assembled.\n\r  InstantiateGameObject instantiated prefab. Output instantiated GameObject. Get the Rigidbody component with Rigidbody.Get. Add force with AddForceRigidbody to the received Rigidbody.  Data flow can be used in BehaviourTree as well.\nReference link  StateBehaviour : InstantiateGameObject StateBehaviour : AddForceRigidbody Calculator : Rigidbody.Get  "
    },
    {
        "uri": "/manual/parametercontainer/addcomponent.html",
        "title": "Add ParameterContainer component",
        "tags": [],
        "description": "",
        "summary": "ParameterContainer component is required to handle parameters.\nThere are the following methods for adding ParameterContainer components.\nCreate button in Hierarchy window  Click the Create button in the Hierarchy window or right click in the window Select \u0026ldquo;Arbor / ParameterContainer\u0026rdquo; A GameObject with ParameterContainer is created.  \r Inspector window “Add Component” button  Select the GameObject you want to add ParameterContainer in the Hierarchy window Click the \u0026ldquo;Add Component\u0026rdquo; button in the Inspector window Select \u0026ldquo;Arbor / ParameterContainer\u0026rdquo; ParameterContainer is added to GameObject.",
        "content": "ParameterContainer component is required to handle parameters.\nThere are the following methods for adding ParameterContainer components.\nCreate button in Hierarchy window  Click the Create button in the Hierarchy window or right click in the window Select \u0026ldquo;Arbor / ParameterContainer\u0026rdquo; A GameObject with ParameterContainer is created.  \r Inspector window “Add Component” button  Select the GameObject you want to add ParameterContainer in the Hierarchy window Click the \u0026ldquo;Add Component\u0026rdquo; button in the Inspector window Select \u0026ldquo;Arbor / ParameterContainer\u0026rdquo; ParameterContainer is added to GameObject.  \r "
    },
    {
        "uri": "/manual/statemachine/howtouse/addcomponent.html",
        "title": "Adding ArborFSM component",
        "tags": [],
        "description": "",
        "summary": "The ArborFSM component is required to use the state machine.\nThere are the following methods for adding ArborFSM components.\nCreate button in Hierarchy window  Click the Create button in the Hierarchy window or right click in the window Select \u0026ldquo;Arbor / ArborFSM\u0026rdquo; A GameObject with ArborFSM is created.  \r ArborEditor window toolbar  Open the ArborEditor window and click the \u0026ldquo;Create\u0026rdquo; button on the toolbar Select ArborFSM A GameObject with ArborFSM is created.",
        "content": "The ArborFSM component is required to use the state machine.\nThere are the following methods for adding ArborFSM components.\nCreate button in Hierarchy window  Click the Create button in the Hierarchy window or right click in the window Select \u0026ldquo;Arbor / ArborFSM\u0026rdquo; A GameObject with ArborFSM is created.  \r ArborEditor window toolbar  Open the ArborEditor window and click the \u0026ldquo;Create\u0026rdquo; button on the toolbar Select ArborFSM A GameObject with ArborFSM is created.  \r Unselected menu of ArborEditor window  Open the ArborEditor window and click the \u0026ldquo;Create ArborFSM\u0026rdquo; button in the menu displayed when graph is not selected A GameObject with ArborFSM is created.  \r Inspector window \u0026ldquo;Add Component\u0026rdquo; button  Select the GameObject you want to add ArborFSM in the Hierarchy window Click the \u0026ldquo;Add Component\u0026rdquo; button in the Inspector window Select \u0026ldquo;Arbor / ArborFSM\u0026rdquo;. ArborFSM is added to GameObject.  \r "
    },
    {
        "uri": "/manual/statemachine/about-statemachine.html",
        "title": "What is a State Machine?",
        "tags": [],
        "description": "",
        "summary": "A state machine refers to a mechanism that changes the state according to the condition with the behavior as one state.\nIn Arbor, you can use state machine by adding ArborFSM component to GameObject.\nExample: Switch and light Consider the switch and electric light.\n If the switch is off, the light goes out. If the switch is on, the light turns on. The state of the light switches with the switch as a condition.",
        "content": "A state machine refers to a mechanism that changes the state according to the condition with the behavior as one state.\nIn Arbor, you can use state machine by adding ArborFSM component to GameObject.\nExample: Switch and light Consider the switch and electric light.\n If the switch is off, the light goes out. If the switch is on, the light turns on. The state of the light switches with the switch as a condition.  Temporarily assembling with ArborFSM results in the following.\n\r When a Destroy message is sent, a behavior to give an explosion effect and to destroy the light is temporarily assembled.\nWe will do detailed comment later.\nNode component The nodes used in the state machine are summarized in the following pages.\nNode component\nPlease refer once before explaining each part.\nExplanation of examples Let's take a look at the previous example again.\n\r  \u0026ldquo;Light Off\u0026rdquo; state\n\r  First, it starts from the Light Off state of the start state. ActivateGameObect changes the Spotlight object to inactive.\nArbor Reference : ActivateGameObject OnTriggerEnterTransition transitions to the Light On state when an object of the Player tag enters.\nArbor Reference : OnTriggerEnterTransition\n(In order to use OnTriggerEnterTransition, you need to set Collider etc. on GameObject with ArborFSM)   \u0026ldquo;Light On\u0026rdquo; state\n\r  ActivateGameObect changes the Spotlight object to active. By OnTriggerExitTransition, when an object of the Player tag comes out, it transits to the Light Off state.\nArbor Reference : OnTriggerExitTransition\n(In order to use OnTriggerExitTransition, you need to set Collider etc. on GameObject with ArborFSM)   \u0026ldquo;Wait Trigger\u0026rdquo; state\n\r  Since it is resident state, it is always executed regardless of which state is being executed. By TriggerTransition, when a Destroy message comes, it transits to the Explosion \u0026amp; Destroy state.\nArbor Reference : TriggerTransition  To send the Trigger message, use SendTrigger.\nArbor Reference : SendTrigger\nIt uses a SendTrigger from another FSM and indirectly issues a transition instruction.     \u0026ldquo;Explosion \u0026amp; Destroy\u0026rdquo; statea\n\r  InstantiateGameObject instantiates prefab.\nArbor Reference : InstantiateGameObject\n(It is an assumption that you set up particles etc., although nothing is set for the temporary set) DestroyGameObject destroys the LightFSM object (its own GameObject).\nArbor Reference : DestroyGameObject    I think that I understand the flow that combines behaviors into state and transitions when it matches the transition condition.\nIf it is a simple example like this one, I think some people may find it easier to write MonoBehaviour directly,\nWhen multiple states become confused, it will be a great advantage to visualize in graph form.\n"
    },
    {
        "uri": "/manual/arboreditor/nodes/comment.html",
        "title": "Comment node",
        "tags": [],
        "description": "",
        "summary": "\r It is a node for leaving comments.\nHow to create  Right-click where you want to create a comment node. Select \u0026ldquo;Create Comment\u0026rdquo;.  \r ",
        "content": "\r It is a node for leaving comments.\nHow to create  Right-click where you want to create a comment node. Select \u0026ldquo;Create Comment\u0026rdquo;.  \r "
    },
    {
        "uri": "/manual/arboreditor/openwindow.html",
        "title": "Open ArborEditor window",
        "tags": [],
        "description": "",
        "summary": "Open Window directly  Select \u0026ldquo;Window \u0026gt; Arbor \u0026gt; Arbor Editor\u0026rdquo; from the menu\n\r   Open from graph  Select GameObject with graph. Click the \u0026ldquo;Open Editor\u0026rdquo; button in the Inspector window.\n\r   See below for how to create each graph.\n Adding ArborFSM component Adding BehaviourTree component  ",
        "content": "Open Window directly  Select \u0026ldquo;Window \u0026gt; Arbor \u0026gt; Arbor Editor\u0026rdquo; from the menu\n\r   Open from graph  Select GameObject with graph. Click the \u0026ldquo;Open Editor\u0026rdquo; button in the Inspector window.\n\r   See below for how to create each graph.\n Adding ArborFSM component Adding BehaviourTree component  "
    },
    {
        "uri": "/manual/scripting/behaviourtree/actionbehaviour.html",
        "title": "ActionBehaviour",
        "tags": [],
        "description": "",
        "summary": "You can create an ActionBehaviour script and add the original action by describing what you want to do.\nCreate an ActionBehaviour script file  Right click at the place you want to create from the Project window. From the right-click menu, select \u0026ldquo;Create \u0026gt; Arbor \u0026gt; Behavior tree \u0026gt; ActionBehaviour C# Script\u0026rdquo;.\n\r  Enter the file name and confirm  Function to be called If you add the ActionBehavior you created to the Behavior Tree graph, each function of the script will be called.",
        "content": "You can create an ActionBehaviour script and add the original action by describing what you want to do.\nCreate an ActionBehaviour script file  Right click at the place you want to create from the Project window. From the right-click menu, select \u0026ldquo;Create \u0026gt; Arbor \u0026gt; Behavior tree \u0026gt; ActionBehaviour C# Script\u0026rdquo;.\n\r  Enter the file name and confirm  Function to be called If you add the ActionBehavior you created to the Behavior Tree graph, each function of the script will be called.\n OnAwake\nIt is called the first time the action node becomes active. OnStart\nCalled when the action node becomes active. OnExecute\nIt is called when the action node is executed.\nFor the execution timing, see UpdateSettings and ExecutionSettings in BehaviourTree.\nArbor Reference : BehaviourTree OnAbort\nCalled when the node is interrupted by the Decorator. OnEnd\nCalled when the action node exits.  Important point  For enabled of MonoBehaviour are used internally already for execution control, please use the behaviourEnabled to be a substitute.  Call order \r  You can also use the callback method of MonoBehaviour other than OnEnable and OnDisable, but please be aware that Start () will be called after OnExecute().  Declaring variables \r You can edit it in Arbor Editor by declaring a field with public or SerializedField attribute added to the created script.\n1 2 3 4 5 6 7 8 9 10 11 12  using UnityEngine; using System.Collections; using System.Collections.Generic; using Arbor; using Arbor.BehaviourTree; [AddComponentMenu(\u0026#34;\u0026#34;)] public class TestActionBehaviour : ActionBehaviour { public string myName; // The rest is omitted. }    Finish Execute It can be terminated by calling FinishExecute(bool result) in the OnExecute method.\n1 2 3 4  if (Input.GetKey(KeyCode.Space) ) { FinishExecute(true); }    Data flow It is possible to input / output values by data flow.\nFor details, see \u0026ldquo;Scripting: Data flow\u0026rdquo;.\nScripting : Data flow\n"
    },
    {
        "uri": "/manual/behaviourtree/howtouse/addcomponent.html",
        "title": "Adding BehaviourTree component",
        "tags": [],
        "description": "",
        "summary": "To use the behaviour tree you need the BehaviourTree component.\nThere are two ways to add the BehaviourTree component.\nCreate button in Hierarchy window  Click the Create button in the Hierarchy window or right click in the window Select \u0026ldquo;Arbor / BehaviourTree\u0026rdquo; A GameObject with BehaviourTree is created.  \r ArborEditor window toolbar  Open the ArborEditor window and click the \u0026ldquo;Create\u0026rdquo; button on the toolbar Select BehaviourTree A GameObject with BehaviourTree is created.",
        "content": "To use the behaviour tree you need the BehaviourTree component.\nThere are two ways to add the BehaviourTree component.\nCreate button in Hierarchy window  Click the Create button in the Hierarchy window or right click in the window Select \u0026ldquo;Arbor / BehaviourTree\u0026rdquo; A GameObject with BehaviourTree is created.  \r ArborEditor window toolbar  Open the ArborEditor window and click the \u0026ldquo;Create\u0026rdquo; button on the toolbar Select BehaviourTree A GameObject with BehaviourTree is created.  \r Unselected menu of ArborEditor window  Open the ArborEditor window and click the \u0026ldquo;Create BehaviourTree\u0026rdquo; button in the menu displayed when graph is not selected A GameObject with BehaviourTree is created.  \r Inspector window \u0026ldquo;Add Component\u0026rdquo; button  Select the GameObject you want to add ArborFSM in the Hierarchy window Click the \u0026ldquo;Add Component\u0026rdquo; button in the Inspector window Select \u0026ldquo;Arbor / BehaviourTree\u0026rdquo;. BehaviourTree is added to GameObject.  \r "
    },
    {
        "uri": "/manual/behaviourtree/about-behaviourtree.html",
        "title": "What is a Behaviour Tree?",
        "tags": [],
        "description": "",
        "summary": "Behaviour tree is a tree structure for clarifying behaviour priorities and conditions and facilitating control.\nIn Arbor, you can use state machine by adding BehaviourTree component to GameObject.\nExample: Enemy whose behavior changes depending on the distance to the player Let's consider an enemy AI, for example.\n It approaches if the distance between the enemy and the player is within 10 meters. Otherwise, it moves on a fixed route.  Behavior to approach the player can be said to have a high priority in comparison with the behavior of moving the fixed route.",
        "content": "Behaviour tree is a tree structure for clarifying behaviour priorities and conditions and facilitating control.\nIn Arbor, you can use state machine by adding BehaviourTree component to GameObject.\nExample: Enemy whose behavior changes depending on the distance to the player Let's consider an enemy AI, for example.\n It approaches if the distance between the enemy and the player is within 10 meters. Otherwise, it moves on a fixed route.  Behavior to approach the player can be said to have a high priority in comparison with the behavior of moving the fixed route.\nTemporarily assembling with Arbor's Behaviour Tree will be as follows.\n\r The higher the priority of the node on the left, the lower the priority on the right.\nAlso, by adding a script called Decorator to the node, we judge the condition and control the node to be executed.\nWe will do detailed comment later.\nNode component The nodes used in the behaviour tree are summarized in the following pages.\nNode component\nPlease refer once before explaining each part.\nExplanation of examples Let's take a look at the previous example again.\n\r  Beginning with the root node. With the Selector node, we will look for the successful node of the child node and execute it from left to right.\n\r  In the Agent Move To Transform node, since the ParameterCheck decorator has been added, judgment is made on the condition of Parameter.\n\r  As an example, the distance to the player is created assuming that it is stored in the Distance parameter.\n\r  Assuming Distance is 15, the ParameterCheck decorator returns false, so the Agent Move To Transform node fails and returns to Selector. The Selector executes the next Agent Move On Waypoint node because the Agent Move To Transform node failed.\n\r  The Agent Move On Waypoint action continues to run repeatedly unless an interruption or the like occurs because Type is set to Cycle. Let's set the Distance parameter to 10 or less.\n\r  Agent Move To Transform interrupts the current node because it matches the ParameterCheck condition of the node.\n\r  Again by making the Distance parameter greater than 10 you can see that the Agent Move To Transform node is interrupted and the Agent Move On Waypoint node becomes active.\n\r How the active node changes by Distance parameter  As you can see, the execution priority gets lower as going to the right, and you can see that interrupts etc. can be done by Decorator of the node with high priority.\nEven if it is a simple example like this time, even a finite state machine can be assembled without making it particularly complicated,\nIn the case where the number of states is large and the condition is likely to be complicated, it becomes possible to combine state transitions that are easier to maintain because the condition tree can be described on the execution node side without the transition lines crossing in the behavior tree in the behavior tree.\n"
    },
    {
        "uri": "/manual/scripting/dataflow/outputslot.html",
        "title": "Output slot",
        "tags": [],
        "description": "",
        "summary": "Data can be output by declaring an output slot such as OutpotSlotInt.\nExample script Create a TestOutputSlotBehaviour script file and write the following code.\n1 2 3 4 5 6 7 8 9 10 11 12 13  using UnityEngine;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestOutputSlotBehaviour : StateBehaviour\r{\rpublic OutputSlotInt outputSlot;\rpublic override void OnStateBegin()\r{\routputSlot.SetValue(Random.Range(100, 200));\r}\r}    When this script is added to the state of ArborFSM, it becomes as follows.",
        "content": "Data can be output by declaring an output slot such as OutpotSlotInt.\nExample script Create a TestOutputSlotBehaviour script file and write the following code.\n1 2 3 4 5 6 7 8 9 10 11 12 13  using UnityEngine;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestOutputSlotBehaviour : StateBehaviour\r{\rpublic OutputSlotInt outputSlot;\rpublic override void OnStateBegin()\r{\routputSlot.SetValue(Random.Range(100, 200));\r}\r}    When this script is added to the state of ArborFSM, it becomes as follows.\n\r Output slot class  OutputSlotInt OutputSlotFloat OutputSlotBool OutputSlotGameObject OutputSlotString OutputSlotVector2 OutputSlotVector3 OutputSlotQuaternion OutputSlotRect OutputSlotBounds OutputSlotColor OutputSlotTransform OutputSlotRectTransform OutputSlotRigidbody OutputSlotRigidbody2D OutputSlotComponent OutputSlotLong OutputSlotCollider OutputSlotCollider2D OutputSlotCollision OutputSlotCollision2D OutputSlotRaycastHit OutputSlotRaycastHit2D OutputSlotUnityObject OutputSlotAny  "
    },
    {
        "uri": "/manual/scripting/parameterreference/parameterreference.html",
        "title": "ParameterReference",
        "tags": [],
        "description": "",
        "summary": "By declaring the ParameterReference association class in the field, you can refer to the parameter.\nExample script 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  using UnityEngine;\rusing Arbor;\rpublic class TestParameterReference : MonoBehaviour\r{\rpublic IntParameterReference intParameter;\rvoid Start ()\r{\rif (intParameter.parameter != null)\r{\rDebug.Log(intParameter.parameter.name + \u0026#34; : \u0026#34; + intParameter.parameter.intValue);\r}\r}\r}    When you add this script to GameObject, it becomes as follows.",
        "content": "By declaring the ParameterReference association class in the field, you can refer to the parameter.\nExample script 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  using UnityEngine;\rusing Arbor;\rpublic class TestParameterReference : MonoBehaviour\r{\rpublic IntParameterReference intParameter;\rvoid Start ()\r{\rif (intParameter.parameter != null)\r{\rDebug.Log(intParameter.parameter.name + \u0026#34; : \u0026#34; + intParameter.parameter.intValue);\r}\r}\r}    When you add this script to GameObject, it becomes as follows.\n\r    Field Name Description     Container Reference ParameterContainerBy clicking button you can select Constant or DataSlot.(However, DataSlot can not be used except for script for Arbor node)   Parameter Parameters to be referred toWhen Container type is DataSlot, name designation by character string.    For the getted Parameter, refer to the script reference.\nScript Reference : Parameter\nParameterReference related class  IntParameterReference FloatParameterReference BoolParameterReference GameObjectParameterReference StringParameterReference Vector2ParameterReference Vector3ParameterReference QuaternionParameterReference RectParameterReference BoundsParameterReference ColorParameterReference TransformParameterReference RectTransformParameterReference RigidbodyParameterReference Rigidbody2DParameterReference ComponentParameterReference LongParameterReference AnyParameterReference\n(Used to refer to Variable parameter)  "
    },
    {
        "uri": "/manual/scripting/statebehaviour.html",
        "title": "StateBehaviour",
        "tags": [],
        "description": "",
        "summary": "To customize StateBehaviour, you need to create a script file for StateBehaviour and describe what you want to do.\nCreate StateBehaviour script file  Right-click on the location you want to create from the Project window. From the right-click menu, and select \u0026ldquo;Create\u0026gt; Arbor \u0026gt; State Behaviour C# Script\u0026rdquo;.\n\r  Determined to enter the file name  Function to be called By assigning the created StateBehaviour to the state in ArborEditor, each function of the script will be called.",
        "content": "To customize StateBehaviour, you need to create a script file for StateBehaviour and describe what you want to do.\nCreate StateBehaviour script file  Right-click on the location you want to create from the Project window. From the right-click menu, and select \u0026ldquo;Create\u0026gt; Arbor \u0026gt; State Behaviour C# Script\u0026rdquo;.\n\r  Determined to enter the file name  Function to be called By assigning the created StateBehaviour to the state in ArborEditor, each function of the script will be called.\n OnStateAwake\nIt is called when it first enters the state. OnStateBegin\nIt is called when transitioning to state. OnStateUpdate\nIt will be called every frame at the timing of Update() of MonoBehaviour. OnStateLateUpdate\nIt will be called every frame at the timing of LateUpdate() of MonoBehaviour. OnStateEnd\nIt is called when leaving the state. MonoBehaviour message functions\nFor details, please see the MonoBehaviour Messages of Unity ScriptReference.  Important point  For enabled of MonoBehaviour are used internally already for execution control, please use the behaviourEnabled to be a substitute.  Execution Order \r  OnStateAwake / OnStateBegin / OnStateUpdate / OnStateLateUpdate / OnStateEnd is called in order from the top attached to the state node in Arbor Editor. MonoBehaviour messages are invoked according to the order of execution by Unity.\nFor details, refer to Execution Order of Event Functions in Unity Manual.  Variables and Arbor Editor \r You can edit it in Arbor Editor by declaring a variable with public or SerializeField attribute added to the created script.\n1 2 3 4 5 6 7  using UnityEngine; using System.Collections; using Arbor; public class TestBehaviour : StateBehaviour { public string myName; }    State connection \r Add field By declaring StateLink with the public or SerializeField attribute added to the created script, connection slots will be displayed in Arbor Editor.\n1 2 3 4 5 6 7 8  using UnityEngine; using System.Collections; using Arbor; public class TestBehaviour : StateBehaviour { public StateLink nextState; // Hereinafter abbreviated }    Transition to connection destination It is referred to as the Transition in the transition you want to timing.\n1  Transition( nextState );    Data flow It is possible to input / output values by data flow.\nFor details, see \u0026ldquo;Scripting: Data flow\u0026rdquo;.\nScripting : Data flow\n"
    },
    {
        "uri": "/manual/window/behaviourmenu.html",
        "title": "Behaviour Select Window",
        "tags": [],
        "description": "",
        "summary": "Window for selecting behaviour\n\r UI description Search bar \r You can search by behaviour name.\nGroup Name \r The group name of the current hierarchy.\nBehaviour List \r A list of behaviours.\nGroup \r A group of behaviors.\nClick to display the list in the group.\nBehaviour \r This is behaviour. Click to add the behavior to the node.\nHelp Button \r Click the behavior help button to open the reference in your browser.",
        "content": "\rWindow for selecting behaviour\n\r UI description Search bar \r You can search by behaviour name.\nGroup Name \r The group name of the current hierarchy.\nBehaviour List \r A list of behaviours.\nGroup \r A group of behaviors.\nClick to display the list in the group.\nBehaviour \r This is behaviour. Click to add the behavior to the node.\nHelp Button \r Click the behavior help button to open the reference in your browser.\n"
    },
    {
        "uri": "/manual/getting-started/about-arbor.html",
        "title": "About &#34;Arbor 3: FSM &amp; BT Graph Editor&#34;",
        "tags": [],
        "description": "",
        "summary": "I want to make games using finite state machines and behavior trees! However, I want to code my behavior that depends on game logic! A graph editing window of a finite state machine and a behavior tree that can be used at such time,\nIt is a simple graph editor asset that allows you to write scripts according to the behavior you want to create.  What is finite state machine (FSM)?",
        "content": "\r  I want to make games using finite state machines and behavior trees! However, I want to code my behavior that depends on game logic! A graph editing window of a finite state machine and a behavior tree that can be used at such time,\nIt is a simple graph editor asset that allows you to write scripts according to the behavior you want to create.  What is finite state machine (FSM)?  The finite state machine, and behavior in a certain state, it is a mechanism for transition from the state to another. For example, switches and lights.  The switch and the lamp there is a state of ON and OFF, will also be ON lamp if the ON switch. Switch is switched to ON If you press, is the behavior to switch to OFF and press again. Electric light will be the behavior to put the lights if ON.    \r For details, please refer to \u0026ldquo;State machine\u0026quot;.\nWhat is a Behaviour Tree (BT)?  It is a tree structure of behaviors that makes it possible to handle the priority of action and the condition for doing actions as a set. For example, consider enemy AI.  The behavior approaching the player is done if the distance to the player is short. In other cases, it will cycle around a fixed route. Behaviors approaching players can be said to have a higher priority than behaviors traveling on certain routes.    \r For details, see \u0026ldquo;Behaviour Tree\u0026quot;.\n"
    },
    {
        "uri": "/manual/getting-started.html",
        "title": "Getting Started",
        "tags": [],
        "description": "",
        "summary": "This section provides a basic overview of Arbor 3 and how to operate it.\nAbout \u0026ldquo;Arbor 3: FSM \u0026amp; BT Graph Editor\u0026rdquo;  I want to make games using finite state machines and behavior trees! However, I want to code my behavior that depends on game logic! A graph editing window of a finite state machine and a behavior tree that can be used at such time,\nIt is a simple graph editor asset that allows you to write scripts according to the behavior you want to create.",
        "content": "\r This section provides a basic overview of Arbor 3 and how to operate it.\nAbout \u0026ldquo;Arbor 3: FSM \u0026amp; BT Graph Editor\u0026rdquo;  I want to make games using finite state machines and behavior trees! However, I want to code my behavior that depends on game logic! A graph editing window of a finite state machine and a behavior tree that can be used at such time,\nIt is a simple graph editor asset that allows you to write scripts according to the behavior you want to create.  For more information, see About \u0026ldquo;Arbor 3: FSM \u0026amp; BT Graph Editor\u0026rdquo;\nGet started with Arbor Once you have purchased Arbor, you can import it into Unity and use it.\nFor more information, see Preparation for using Arbor\nTo the next step  ArborEditor window\nI explains the ArborEditor window. StateMachine\nI explain StateMachine. BehaviourTree \nI explain BehaviourTree added from Arbor 3. ParameterContainer\nI explain ParameterContainer. Data flow\nI will explain passing data by data slot.  Tutorial There is also a tutorial that you can practice basic usage of Arbor.\nTutorial\n"
    },
    {
        "uri": "/manual/subgraph/create-subgraph.html",
        "title": "Create a subgraph",
        "tags": [],
        "description": "",
        "summary": "When using a subgraph, please create a state or action with the behavior script below.\nSubStateMachine \r Have the child state machine and execute when the node becomes active.\n ArborReference : SubStateMachine(StateBehaviour) ArborReference : SubStateMachine(ActionBehaviour)  SubStateMachineReference \r Execute an external state machine such as prefab as a child state machine.\n ArborReference : SubStateMachineReference(StateBehaviour) ArborReference : SubStateMachineReference(ActionBehaviour)  SubBehaviourTree \r Have a child a behaviour tree and execute it when the node becomes active.",
        "content": "When using a subgraph, please create a state or action with the behavior script below.\nSubStateMachine \r Have the child state machine and execute when the node becomes active.\n ArborReference : SubStateMachine(StateBehaviour) ArborReference : SubStateMachine(ActionBehaviour)  SubStateMachineReference \r Execute an external state machine such as prefab as a child state machine.\n ArborReference : SubStateMachineReference(StateBehaviour) ArborReference : SubStateMachineReference(ActionBehaviour)  SubBehaviourTree \r Have a child a behaviour tree and execute it when the node becomes active.\n ArborReference : SubBehaviourTree(StateBehaviour) ArborReference : SubBehaviourTree(ActionBehaviour)  SubBehaviourTreeReference \r Execute an external behaviour tree such as prefab as a child behaviour tree.\n ArborReference : SubBehaviourTreeReference(StateBehaviour) ArborReference : SubBehaviourTreeReference(ActionBehaviour)  "
    },
    {
        "uri": "/manual/scripting/behaviourattribute/hidebehaviour.html",
        "title": "HideBehaviour",
        "tags": [],
        "description": "",
        "summary": "Attribute to hide in add behaviour menu.\nScript Reference : HideBehaviour\nExample Script Create a script named TestHideBehaviour and write the following code.\n1 2 3 4 5 6 7 8 9 10  using UnityEngine;\rusing System.Collections;\rusing System.Collections.Generic;\rusing Arbor;\r[HideBehaviour]\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestHideBehaviour : StateBehaviour\r{\r}    Operation check Click \u0026ldquo;Add Behaviour\u0026rdquo; in the state and check that it is hidden in the behavior added menu window.",
        "content": "Attribute to hide in add behaviour menu.\nScript Reference : HideBehaviour\nExample Script Create a script named TestHideBehaviour and write the following code.\n1 2 3 4 5 6 7 8 9 10  using UnityEngine;\rusing System.Collections;\rusing System.Collections.Generic;\rusing Arbor;\r[HideBehaviour]\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestHideBehaviour : StateBehaviour\r{\r}    Operation check Click \u0026ldquo;Add Behaviour\u0026rdquo; in the state and check that it is hidden in the behavior added menu window.\n\r If not specified, there should be only one TestHideBehaviour in the Scripts group, but since the TestHideBehaviour is hidden, the Scripts group is no longer displayed.\n"
    },
    {
        "uri": "/manual/dataflow/howtouse.html",
        "title": "How to use data slots",
        "tags": [],
        "description": "",
        "summary": "Data slots Connect  Drag the data slot field. Drop into a pair of slots of the same type.  \r Diconnect  Right click on the connection line. Select \u0026ldquo;Disconnect\u0026rdquo;  \r FlexibleField In the fields of the FlexibleField related class, you can select multiple reference methods, so you can flexibly set values.\nSelection type  Click the button next to the field. Select type.  \r Reference types FlexibleType Type that can be selected by FlexibleVector3 etc.",
        "content": "Data slots Connect  Drag the data slot field. Drop into a pair of slots of the same type.  \r Diconnect  Right click on the connection line. Select \u0026ldquo;Disconnect\u0026rdquo;  \r FlexibleField In the fields of the FlexibleField related class, you can select multiple reference methods, so you can flexibly set values.\nSelection type  Click the button next to the field. Select type.  \r Reference types FlexibleType Type that can be selected by FlexibleVector3 etc.\n\r    Item Contents     Constant Constant value.   Parameter Refer to parameters. For parameters, see theManual : ParameterContainer.   DataSlot Input slot of data.    FlexiblePrimitiveType A type that can be selected by a numeric type such as FlexibleInt.\n\r    Item Contents     Constant Constant value.   Parameter Refer to parameters. For parameters, see theManual : ParameterContainer.   Random Randomly obtain from the specified range.   DataSlot Input slot of data.    FlexibleSceneObjectType A selectable type of scene object type such as FlexibleGameObject.\n\r    Item Contents     Constant Constant value.   Parameter Refer to parameters. For parameters, see theManual : ParameterContainer.   DataSlot Input slot of data.   Hierarchy Reference from the graph hierarchy.SelfReferences the GameObject that owns the graph.RootGraphIf you are hierarchizing the graph, refer to the GameObject that owns the root graph.If the self graph is a root, it refers to the GameObject of the self graph.ParentGraphIf the graph is hierarchical, refer to the GameObject of the parent graph.\nIf the current graph is the root, it returns null.    Drag and drop settings Regardless of the selected type, Parameter and DataSlot (GameObject and Component are also acceptable for scene object types) can be set by direct drag and drop.\n Drag the parameters you want to set. Drop to Drop field.  \r DataLink attribute For fields using DataLink attributes, you can use constant or input from data flow.\nAlso, when entering from the data flow, you can specify at what timing the value should be updated.\nSpecifying timing  When an input slot is connected to another output slot, a timing specification field is displayed. Specify the type. (If it is not displayed, you can not change it because the script has specified the timing.)  \r Timing type \r    Item Contents     Noting Do not update.   Everything Always update.   Enter Update when entering a node.   Execute Update when the node is executed.   Manual Update from script to arbitrary timing.    Reroute node Using the reroute node makes it easier to organize the data flow lines.\nCreate a reroute node and connect  Drag the data slot field. Drop at the position in the graph where you want to create a reroute node Select \u0026ldquo;reroute\u0026rdquo; in the menu  \r Insert reroute node  Right-click the position where you want to create a reroute node on the connection line. Select \u0026ldquo;reroute\u0026rdquo; in the menu.  \r Change direction of reroute node  Select reroute node to change direction Drag the direction icon to change it.  \r About connection line Show Value If you hover over the connection line while playing, the current value will be displayed.\n\r Also, if you select \u0026ldquo;Always show data value\u0026rdquo; from the right-click menu of the connection line, it will be displayed even without mouseover.\nIf you want to display the values of all the connection lines, selecting \u0026ldquo;Show all data values\u0026rdquo; from the \u0026ldquo;Debug\u0026rdquo; menu on the toolbar will toggle.\n\r Right click menu Right-click on the connection line to display the menu.\n\r    Item Contents     Always show data values Always show data values when playing.   Reroute Insert the reroute node.   Disconnect Disconnect it.    "
    },
    {
        "uri": "/manual/parametercontainer/editparameter.html",
        "title": "Edit Parameter",
        "tags": [],
        "description": "",
        "summary": "Add Parameter  Click the + button of \u0026ldquo;Parameters\u0026rdquo;.\nSelect the type you want to add.  \r Edit Parameter  Select name, value and edit.  \r Delete Parameter  Select the parameter and click the - button.  \r Search Parameter  Enter a name in the search bar to search.\nYou can also filter by type by selecting the search type.  \r ",
        "content": "Add Parameter  Click the + button of \u0026ldquo;Parameters\u0026rdquo;.\nSelect the type you want to add.  \r Edit Parameter  Select name, value and edit.  \r Delete Parameter  Select the parameter and click the - button.  \r Search Parameter  Enter a name in the search bar to search.\nYou can also filter by type by selecting the search type.  \r "
    },
    {
        "uri": "/manual/statemachine/nodes.html",
        "title": "Node component",
        "tags": [],
        "description": "",
        "summary": "Start state \r This is the first state to be executed when ArborFSM starts.\nOne graph requires one starting state.\nState \r It is a normal state. It is executed by transitioning from the start state or another state.\nResident state \r It is a state that is always executed regardless of the running node.\nPerform some kind of interrupt judgment.\nAlso, because it is always running, it is possible to transition from resident state to other states, but can not transition from other state to resident state.",
        "content": "Start state \r This is the first state to be executed when ArborFSM starts.\nOne graph requires one starting state.\nState \r It is a normal state. It is executed by transitioning from the start state or another state.\nResident state \r It is a state that is always executed regardless of the running node.\nPerform some kind of interrupt judgment.\nAlso, because it is always running, it is possible to transition from resident state to other states, but can not transition from other state to resident state.\nReroute Node \r It is a node for adjusting the connection line route.\nIt is used when connecting lines cross and it is difficult to see.\nThe direction of the line can also be adjusted with this node.\nStateBehaviour scripts \r It is a script for handling state behavior.\nIt can be set to all states of start state, normal state, resident state.\nSince you can add more than one StateBehavior to a state, you can combine behaviors to create states.\nFor creating StateBehaviour script here.\nScripting : StateBehaviour\nBuilt-in StateBehaviour Pre-built behaviors such as ActivateGameObject and OnTriggerEnterTransition in examples are also described in the StateBehaviour script.\nFor reference on the built-in StateBehavior see here.\nArborReference : StateBehaviours\nAbout StateLink \r Use StateLink to do state transitions.\nWhen you declare a StateLink field in StateBehaviour, the field appears in the Arbor Editor.\nBy connecting, state transitions are performed at the time of execution according to the description of the StateBehaviour script.\nMethod of operation    Operation Method     Connect Drag \u0026amp; Drop\r    Disconnect Right click on the connection line and select \u0026ldquo;Disconnect\u0026rdquo;.\r     TransitionTiming The transition timing is not instantaneous, but it follows the specification of TransitionTiming.\nTransitionTiming can be done by clicking on the StateLink gear icon with the setting window that opens.\n\r The behavior of TransitionTiming is as follows.\n   Item Contents     Late Update Overwrite Reserve to transition when LateUpdate.If the transition is already reserved in the same frame, overwrite it.   Immediate Transit instantaneously at transition call.If the transition is looping, there is a possibility of infinite looping, so use with caution.   Late Update Dont Overwrite Reserve to transition when LateUpdate. (Default)If the transition is already reserved within the same frame, do not overwrite it.    "
    },
    {
        "uri": "/manual/statemachine/howtouse/opengraph.html",
        "title": "Open ArborFSM Graph",
        "tags": [],
        "description": "",
        "summary": "To edit ArborFSM you need to open the ArborFSM graph in the Arbor Editor window.\n In the Hierarchy window, select GameObject with ArborFSM component. Click \u0026ldquo;Open Editor\u0026rdquo; button of ArborFSM component editor in Inspector window.  \r Also, if the Arbor Editor window has already been opened, it will switch if you select GameObjet with ArborFSM component in the Hierarchy window.",
        "content": "To edit ArborFSM you need to open the ArborFSM graph in the Arbor Editor window.\n In the Hierarchy window, select GameObject with ArborFSM component. Click \u0026ldquo;Open Editor\u0026rdquo; button of ArborFSM component editor in Inspector window.  \r Also, if the Arbor Editor window has already been opened, it will switch if you select GameObjet with ArborFSM component in the Hierarchy window.\n"
    },
    {
        "uri": "/manual/arboreditor.html",
        "title": "ArborEditor Window",
        "tags": [],
        "description": "",
        "summary": "\r This is a window for editing the node graph.\n Open ArborEditor window\nThis section describes how to open the Arbor Editor window. UI description\nDescribes each UI of the window. Nodes common to graphs\nThis section describes the nodes that can be used in common regardless of the type of graph. [Common usage of graph](/manual/arboreditor/howtouse.html\nThis section describes the basic operation method.  ",
        "content": "\r This is a window for editing the node graph.\n Open ArborEditor window\nThis section describes how to open the Arbor Editor window. UI description\nDescribes each UI of the window. Nodes common to graphs\nThis section describes the nodes that can be used in common regardless of the type of graph. [Common usage of graph](/manual/arboreditor/howtouse.html\nThis section describes the basic operation method.  "
    },
    {
        "uri": "/manual/arboreditor/nodes/group.html",
        "title": "Group node",
        "tags": [],
        "description": "",
        "summary": "It is a node for grouping multiple nodes.\nHow to create  Right-click where you want to create a group node. Select \u0026ldquo;Create Group\u0026rdquo;.  \r Move Group  Move the nodes you want to group as a group into the group node frame Drag and drop group nodes to move  \r Move only group node  Alt + drag group node (option ⌥ + drag on Mac)  \r Auto Alignment This function automatically adjusts the position in the vertical or horizontal direction so that the nodes in the group node do not overlap.",
        "content": "\r It is a node for grouping multiple nodes.\nHow to create  Right-click where you want to create a group node. Select \u0026ldquo;Create Group\u0026rdquo;.  \r Move Group  Move the nodes you want to group as a group into the group node frame Drag and drop group nodes to move  \r Move only group node  Alt + drag group node (option ⌥ + drag on Mac)  \r Auto Alignment This function automatically adjusts the position in the vertical or horizontal direction so that the nodes in the group node do not overlap.\n Click the gear icon and select \u0026ldquo;Settings\u0026rdquo;. Set \u0026ldquo;Auto Alignment\u0026rdquo;  \r "
    },
    {
        "uri": "/manual/arboreditor/interface.html",
        "title": "UI description",
        "tags": [],
        "description": "",
        "summary": "１．Toolbar \u0026ldquo;Create\u0026rdquo; drop down \r Create a GameObject with the selected graph in the scene.\n   Menu Contents     ArborFSM Create a GameObject with ArborFSM in the scene   BehaviourTree Create a GameObject with BehaviourTree in the scene    Graph selection field \r This is a field for selecting a graph.\n\u0026ldquo;Live Tracking\u0026rdquo; toggle \r Toggle active node tracking during play.",
        "content": "\r １．Toolbar \u0026ldquo;Create\u0026rdquo; drop down \r Create a GameObject with the selected graph in the scene.\n   Menu Contents     ArborFSM Create a GameObject with ArborFSM in the scene   BehaviourTree Create a GameObject with BehaviourTree in the scene    Graph selection field \r This is a field for selecting a graph.\n\u0026ldquo;Live Tracking\u0026rdquo; toggle \r Toggle active node tracking during play.\n\u0026ldquo;View\u0026rdquo; drop down \r Show menu related to View.\n   Menu Contents     Expand All Expand all collapsed behavior   Collapse All Collapse all deployed behaviors   Node Comment \r NormalShow according to the setting of each node.Show AllShow all node comments.Show Commented OnlyShow only node comments that have been written.Hide AllHide all node comments.   DataSlot \r Show Outside NodeDisplay data slots outside the frame of a node.Show Inside NodeDisplay data slots in the frame of the node.Show FlexiblyDisplay the data slot outside the frame of the node only when connecting without displaying it.    \u0026ldquo;Debug\u0026rdquo; drop down \r Displays the debug related menu of the graph.\n   Menu Contents     Show all data values always Always display data values regardless of display setting of individual data lines   Show all data values Change to show the output values of all data lines to during play   Hide all data values Change to hide the output values of all data lines    Refer to the manual of each graph for menu items by graph.\n How to use State Machine How to use Behaviour Tree  Capture button \r Save the entire graph view in the image.\n(Maximum size is up to 16384 x 16384)\nNotification button \r This button will be displayed when a new version is released.\nHelp button \r A menu for opening a manual etc. is displayed.\nSetting button \r Open the window for setting.\n   Item Contents     Language Select language to display \r SystemSet language according to OS settingsUnityEditorSet the language according to the Unity Editor settings (Unity 2018.1 or later)Each languageSet for each language   Show Logo Switch Arbor logo display to graph view \r HiddenHide logoFade OutFade out after displaying the logoAlways ShowAlways show logo   Zoom Setting amount to zoom out(Unity 2017.2 or later)   Mouse Wheel Mode Selection of mouse wheel behavior to zoom or scroll(Unity 2017.2 or later) \r ZoomChange the zoom of the graphScroolScroll the graph   Comment affects zoom Set whether node comment is affected by zoom (Unity 2017.2 or later)   Docking Open Toggle docking when opening ArborEditor window   Live Tracking Hierarchy Switching tracking of graph hierarchy during live tracking   Show Grid Toggle grid display in graph view   Snap Grid Toggle to snap when dragging in graph view   Grid Size Setting the grid width displayed in the graph view   Grid Splin Num Setting the number of split grid sizes   Restore default grid settings Revert the grid setting to default   Version The version of Arbor you are importing    ２．Side Panel Toggle button on side panel \r Switch the display of the side panel.\nGraph tab Tab about the basic data of the graph.\nGraph \r The graph name setting and the switching button of the parent graph and child graph are displayed.\n Name Graph name edit field Parent Graph Button to display the parent graph in the graph view Children Button to display child graph in graph view (Displayed when there is SubStateMachine or SubBehaviourMachine)  Node List \r A list of nodes that are placed in the graph.\n(Only displayed nodes are nodes involved in graph state)\nMethod of operation    Operation Windows Mac     Select Left mouse button Mouse button   Additional selection / Deselect Ctrl + Mouse left button command ⌘ + Mouse button   Sequential node selection Shift + Mouse left button shift ⇧ + Mouse button    Parameters Tab This is a tab about the parameters in the graph.\nCreate a ParameterContainer Create a ParameterContainer directly attached to the graph.\n Open the Parameters tab and click the \u0026ldquo;Create\u0026rdquo; button.  \r Edit parameters You can edit parameters like ParameterContainer.\nFor details, refer to ParameterContainer.\n３．Graph View \r Display node graph.\n４．Graph Path \r This is the path to the graph currently displayed in the graph view.\n"
    },
    {
        "uri": "/manual/scripting/behaviourtree/decorator.html",
        "title": "Decorator",
        "tags": [],
        "description": "",
        "summary": "You can add original condition judgment and loop processing by creating a Decorator script and describing what you want to do.\nCreating a Decorator script file  Right click at the place you want to create from the Project window. From the right-click menu, select \u0026ldquo;Create\u0026gt; Arbor\u0026gt; Behavior tree\u0026gt; Decorator C# Script\u0026rdquo;.\n\r  Enter the file name and confirm  Function to be called If you add the created Decotarot to the composite node or action node, each function of the script will be called.",
        "content": "You can add original condition judgment and loop processing by creating a Decorator script and describing what you want to do.\nCreating a Decorator script file  Right click at the place you want to create from the Project window. From the right-click menu, select \u0026ldquo;Create\u0026gt; Arbor\u0026gt; Behavior tree\u0026gt; Decorator C# Script\u0026rdquo;.\n\r  Enter the file name and confirm  Function to be called If you add the created Decotarot to the composite node or action node, each function of the script will be called.\n OnAwake\nIt is called the first time the node becomes active. OnStart\nIt is called when the node becomes active. OnAbort\nCalled when the node is interrupted by the Decorator. OnEnd\nCalled when the node exits. HasConditionCheck\nIt is called to determine whether ConditionCheck is done or not.\nIf ConditionCheck is not done, please override and return false.\nDefault is true. OnConditionCheck\nIt is called when condition judgment is performed.\nPlease return true if it matches the condition, false if it does not match.\nWhether to abort or not is ultimately determined by AbortFlags. OnRepeatCheck\nIt is called to determine whether to repeat if the node terminates normally.\nTo repeat please return true.\nDefault is false. OnFinishExecute\nIt is called to change the execution result.\nBy default, it returns the received result as it is.  Important point  For enabled of MonoBehaviour are used internally already for execution control, please use the behaviourEnabled to be a substitute.  Call order \r  If more than one Decorator is added to the node, it is called in order from the top. You can also use the callback method of MonoBehaviour other than OnEnable and OnDisable, but please be aware that Start () will be called after OnConditionCheck () etc.  Declaring variables \r You can edit it in Arbor Editor by declaring a field with public or SerializedField attribute added to the created script.\n1 2 3 4 5 6 7 8 9 10 11 12  using UnityEngine; using System.Collections; using System.Collections.Generic; using Arbor; using Arbor.BehaviourTree; [AddComponentMenu(\u0026#34;\u0026#34;)] public class TestDecorator : Decorator { public string myName; // The rest is omitted. }    Data flow It is possible to input / output values by data flow.\nFor details, see \u0026ldquo;Scripting: Data flow\u0026rdquo;.\nScripting : Data flow\n"
    },
    {
        "uri": "/manual/scripting/behaviourtree.html",
        "title": "BehaviourTree",
        "tags": [],
        "description": "",
        "summary": "You can also customize it by writing a script in Behavior Tree.\n ActionBehaviour\nThis section explains the scripts assigned to the action node. Decorator\nThis section eexplain the decorator script. Service\nThis section eexplain the service script.  ",
        "content": "You can also customize it by writing a script in Behavior Tree.\n ActionBehaviour\nThis section explains the scripts assigned to the action node. Decorator\nThis section eexplain the decorator script. Service\nThis section eexplain the service script.  "
    },
    {
        "uri": "/manual/behaviourtree/nodes.html",
        "title": "Node component",
        "tags": [],
        "description": "",
        "summary": "Root Node \r It is the first active node to run the behavior tree.\nYou can connect with one child node.\nComposite Node \r It has one or more child nodes and controls which child nodes to execute.\nHow to control is described in CompositeBehaviour script.\nYou can also add Decorator scripts and Service scripts to be described later.\nBuilt-in CompositeBehaviour  Selector\nExecute the child nodes in order from the left, terminate when the child node returns success , and return success.",
        "content": "Root Node \r It is the first active node to run the behavior tree.\nYou can connect with one child node.\nComposite Node \r It has one or more child nodes and controls which child nodes to execute.\nHow to control is described in CompositeBehaviour script.\nYou can also add Decorator scripts and Service scripts to be described later.\nBuilt-in CompositeBehaviour  Selector\nExecute the child nodes in order from the left, terminate when the child node returns success , and return success.\nIf all child nodes return failure, it returns failure.\nIt is used when you want to find a successful node in order from the left and you do not want to run subsequent nodes. Sequencer\nExecute the child nodes in order from the left, terminate when the child node returns failure , and return a failure.\nIf all child nodes return success, success is returned.\nIt is used when you want to execute all as long as the child node returns success.  For reference on the built-in CompositeBehaviour see here.\nArbor Reference : Built-in CompositeBehaviour\nAction Node \r The node that performs the action.\nWrite the ActionBehaviour script to see what action to take.\nAlso, we can add Decorator script and Service script here as well.\nFor reference on built-in ActionBehavior see here.\nArbor Reference : Built-in ActionBehaviour\nFor creating ActionBehaviour script, click here.\nScripting : ActionBehaviour\nDecorator script \r It is a script that can perform condition judgment, suspend or interrupt an executing node, repeat judgment at the end timing.\nThis script is used in addition to composite nodes and action nodes.\nFor reference of the built-in Decorator, please refer to here.\nArbor Reference : Built-in Decorator\nFor creating Decorator script, click here.\nScripting : Decorator\nAbout AbortFlags Abort or interrupt target is controlled by AbortFlags.\n Self\nPerforms condition determination while its node or its subordinate node is executing.\nIf the result of condition judgment is false, abort and return failure to the parent node. LowerPriority\nA node with a lower priority on the right side than its own node performs a condition determination during execution.\nIf the result of the condition judgment is true, the currently executing node is suspended, and its own node becomes active.  It can be set by combining the above two flags.\nAlso, regardless of AbortFlags, condition judgment is performed once when its own node becomes active, and if it is false, it will be returned as a failure as it is.\nService script Service scripts can be added to composite nodes and action nodes, scripts that can do something while the node is active.\nAlthough it is not used in the example Behaviour Tree, For example, it is suitable for describing auxiliary processing such as adding a Service that stores the distance to the player in Parameter to the Selector node.\nFor creating Service script, click here.\nScripting : Service\n"
    },
    {
        "uri": "/manual/behaviourtree/howtouse/opengraph.html",
        "title": "Open BehaviourTree Graph",
        "tags": [],
        "description": "",
        "summary": "To edit BehaviourTree You need to open a BehaviourTree graph in the Arbor Editor window.\n In the Hierarchy window, select GameObject with BehaviourTree component. Click \u0026ldquo;Open Editor\u0026rdquo; button of BehaviourTree component editor in Inspector window.  \r Also, if the Arbor Editor window is already open, it will switch if you select GameObjet with BehaviourTree component in the Hierarchy window.",
        "content": "To edit BehaviourTree You need to open a BehaviourTree graph in the Arbor Editor window.\n In the Hierarchy window, select GameObject with BehaviourTree component. Click \u0026ldquo;Open Editor\u0026rdquo; button of BehaviourTree component editor in Inspector window.  \r Also, if the Arbor Editor window is already open, it will switch if you select GameObjet with BehaviourTree component in the Hierarchy window.\n"
    },
    {
        "uri": "/manual/scripting/parameterreference/flexiblefield.html",
        "title": "FlexibleField",
        "tags": [],
        "description": "",
        "summary": "Using the FlexibleField association class, you can select and reference constant values, parameter reference, or data flow input.\nExample script 1 2 3 4 5 6 7 8 9 10 11 12 13  using UnityEngine;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestFlexibleFieldBehaviour : StateBehaviour\r{\rpublic FlexibleInt flexibleInt;\rpublic override void OnStateBegin()\r{\rDebug.Log(\u0026#34;flexibleInt : \u0026#34; + flexibleInt.value);\r}\r}    When this script is added to the state of ArborFSM, it becomes as follows.",
        "content": "Using the FlexibleField association class, you can select and reference constant values, parameter reference, or data flow input.\nExample script 1 2 3 4 5 6 7 8 9 10 11 12 13  using UnityEngine;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestFlexibleFieldBehaviour : StateBehaviour\r{\rpublic FlexibleInt flexibleInt;\rpublic override void OnStateBegin()\r{\rDebug.Log(\u0026#34;flexibleInt : \u0026#34; + flexibleInt.value);\r}\r}    When this script is added to the state of ArborFSM, it becomes as follows.\n\r You can change the reference method by clicking the button at the right end of the field.\n\r By selecting \u0026ldquo;Parameter\u0026rdquo;, you can refer to it like Parameter Reference.\n\r FlexibleField related class  FlexibleInt FlexibleFloat FlexibleBool FlexibleGameObject FlexibleString FlexibleEnumAny FlexibleVector2 FlexibleVector3 FlexibleQuaternion FlexibleRect FlexibleBounds FlexibleColor FlexibleTransform FlexibleRectTransform FlexibleRigidbody FlexibleRigidbody2D FlexibleComponent FlexibleLong FlexibleField\n(Used to refer to Variable parameter)  "
    },
    {
        "uri": "/manual/scripting/dataflow/inputslot.html",
        "title": "Input slot",
        "tags": [],
        "description": "",
        "summary": "Data can be output by declaring an input slot such as InputSlotInt.\nExample script Create a TestInputSlotBehaviour script file and write the following code.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21  using UnityEngine;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestInputSlotBehaviour : StateBehaviour\r{\rpublic InputSlotInt inputSlot;\rpublic override void OnStateBegin()\r{\rint intValue = 0;\rif (inputSlot.",
        "content": "Data can be output by declaring an input slot such as InputSlotInt.\nExample script Create a TestInputSlotBehaviour script file and write the following code.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21  using UnityEngine;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestInputSlotBehaviour : StateBehaviour\r{\rpublic InputSlotInt inputSlot;\rpublic override void OnStateBegin()\r{\rint intValue = 0;\rif (inputSlot.GetValue(ref intValue))\r{\rDebug.Log(\u0026#34;inputSlot : \u0026#34; + intValue);\r}\relse\r{\rDebug.LogWarning(\u0026#34;inputSlot : not connected.\u0026#34;);\r}\r}\r}    When this script is added to the state of ArborFSM, it becomes as follows.\n\r Input slot class  InputSlotInt InputSlotFloat InputSlotBool InputSlotGameObject InputSlotString InputSlotVector2 InputSlotVector3 InputSlotQuaternion InputSlotRect InputSlotBounds InputSlotColor InputSlotTransform InputSlotRectTransform InputSlotRigidbody InputSlotRigidbody2D InputSlotComponent InputSlotLong InputSlotCollider InputSlotCollider2D InputSlotCollision InputSlotCollision2D InputSlotRaycastHit InputSlotRaycastHit2D InputSlotUnityObject InputSlotAny  "
    },
    {
        "uri": "/manual/window/typeselect.html",
        "title": "Type Select Window",
        "tags": [],
        "description": "",
        "summary": "Window for selecting type\n\r UI description Search bar \r You can search by type name.\nFilter \r Switches the filter according to the type of mold.\nFilter List \r A list of type types to filter.\nType List \r A list of selectable types.\nYou can select the type by clicking.",
        "content": "\rWindow for selecting type\n\r UI description Search bar \r You can search by type name.\nFilter \r Switches the filter according to the type of mold.\nFilter List \r A list of type types to filter.\nType List \r A list of selectable types.\nYou can select the type by clicking.\n"
    },
    {
        "uri": "/manual/getting-started/preparation.html",
        "title": "Preparation for using Arbor",
        "tags": [],
        "description": "",
        "summary": "Get the Arbor Please purchase from the Asset Store.\n\rProject creation If you do not have a project that uses Arbor, you need to create a new project.\n\r For details on how to create a project, see Getting started in the Unity Manual.\nFinally, press the \u0026ldquo;CREATE\u0026rdquo; button to create the project.\nArbor import To import Arbor, first display the AssetStore window.\nFrom the menu, select \u0026ldquo;Window \u0026gt; Asset Store\u0026rdquo; or press Ctrl + 9 on the shortcut.",
        "content": "Get the Arbor Please purchase from the Asset Store.\n\rProject creation If you do not have a project that uses Arbor, you need to create a new project.\n\r For details on how to create a project, see Getting started in the Unity Manual.\nFinally, press the \u0026ldquo;CREATE\u0026rdquo; button to create the project.\nArbor import To import Arbor, first display the AssetStore window.\nFrom the menu, select \u0026ldquo;Window \u0026gt; Asset Store\u0026rdquo; or press Ctrl + 9 on the shortcut.\n\r When the AssetStore window is displayed, click the\u0026quot;My Assets\u0026rdquo; button on the toolbar to switch to download list.\nFind the Arbor 3 package in the list.\n\r If \u0026ldquo;Download\u0026rdquo; button is displayed, click to start downloading.\nClick on the \u0026ldquo;Import\u0026rdquo; button to display the Import Unity Package window.\n\r Import is completed by clicking the Import button at the lower right of the window.\n"
    },
    {
        "uri": "/manual/subgraph/argument.html",
        "title": "Argument of the graph",
        "tags": [],
        "description": "",
        "summary": "Parameters can be exchanged between the parent graph and the child graph.\nCreating parameters to pass  Open the child graph in ArborEditor. Open the Parameters tab of the side panel. Create parameters for passing to and from the parent graph. Change the visible settings of Get and Set as necessary.  \r Receive parameters in child graph  Drag and drop the received parameters into the graph view.",
        "content": "\r Parameters can be exchanged between the parent graph and the child graph.\nCreating parameters to pass  Open the child graph in ArborEditor. Open the Parameters tab of the side panel. Create parameters for passing to and from the parent graph. Change the visible settings of Get and Set as necessary.  \r Receive parameters in child graph  Drag and drop the received parameters into the graph view. Select Get from the menu. Output values from the output slot of GetParameter, and use values at other nodes.  \r Parameter setting in child graph  Drag and drop parameters to be set to graph view. Select Set from the menu. Connect the setting value to the input slot.  \r Pass parameters from the parent graph  Open the parent graph in ArborEditor. Add parameters to be passed to the argument list of the subgraph. Set values from fixed values and input slots.  \r Receives parameters from the child graph  Add the parameters you want to receive in the argument list of the subgraph. Output values from the output slot and use values at other nodes.  \r Argument update timing You can specify when to update parameters.\n Click the update timing field. Select timing.  \r Update timing    Name Description     Enter When the node becomes active and the child graph is updated when it starts playing   Execute Updated every frame, when the child graph is executed    Argument setting For arguments, Get and Set can be set visually.\nPlease use it when you do not want to overwrite the parameter value without setting.\n Click the gear icon of the argument Argument setting in the setting window.  \r Argument setting window \r    Label Description     Set Visible setting of input field   Get Visible setting of output field    When the child graph to be executed has not been confirmed If the child graph to be executed by SubStateMachineReference etc. is not confirmed, it is necessary to specify the parameter name and type to be passed.\n Click the + button in the argument list. In the argument creation window, create an argument by inputting a parameter name and type.  \r Argument window \rArgument creation window\n\r \rArgument setting window\n\r    Label Description     Parameter Name Name of the parameter.It must have the same name as the parameter of the child graph.   Parameter Type Type of the parameter.\nIt must be of the same type as the parameters of the child graph.   Reference Type\n(Parameter Type is Enum, Component, Variable only) Value type of parameter\nIt must be of the same type as the parameters of the child graph.   Set Visible setting of input field   Get Visible setting of output field    "
    },
    {
        "uri": "/manual/scripting/behaviourattribute/behaviourtitle.html",
        "title": "BehaviourTitle",
        "tags": [],
        "description": "",
        "summary": "Specify the name displayed in the behaviour's title bar.\nScript Reference : BehaviourTitle\nExample Script Create a script named TestBehaviourTitle and write the following code.\n1 2 3 4 5 6 7 8 9 10  using UnityEngine;\rusing System.Collections;\rusing System.Collections.Generic;\rusing Arbor;\r[BehaviourTitle(\u0026#34;Manual Example\u0026#34;)]\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestBehaviourTitle : StateBehaviour\r{\r}    Operation check Select \u0026ldquo;Scripts / TestBehaviourTitle\u0026rdquo; from the \u0026ldquo;Add Behaviour\u0026rdquo; of the state and check the title bar of the behavior.",
        "content": "Specify the name displayed in the behaviour's title bar.\nScript Reference : BehaviourTitle\nExample Script Create a script named TestBehaviourTitle and write the following code.\n1 2 3 4 5 6 7 8 9 10  using UnityEngine;\rusing System.Collections;\rusing System.Collections.Generic;\rusing Arbor;\r[BehaviourTitle(\u0026#34;Manual Example\u0026#34;)]\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestBehaviourTitle : StateBehaviour\r{\r}    Operation check Select \u0026ldquo;Scripts / TestBehaviourTitle\u0026rdquo; from the \u0026ldquo;Add Behaviour\u0026rdquo; of the state and check the title bar of the behavior.\n\r "
    },
    {
        "uri": "/manual/dataflow/calculator.html",
        "title": "Calculator node",
        "tags": [],
        "description": "",
        "summary": "A calculator node is a node for calculation with data input / output.\nYou can do numerical calculations and access fields for output.\nCreating a calculator node  Right-click the appropriate position of Arbor Editor. Click on the \u0026ldquo;Create Calculator\u0026rdquo;. Select the calculator node you want to create from the list.\n\r   Built-in Calculator Calculator nodes that are used frequently are prepared from the beginning.\nArbor Reference : Calculator Reference",
        "content": "A calculator node is a node for calculation with data input / output.\nYou can do numerical calculations and access fields for output.\nCreating a calculator node  Right-click the appropriate position of Arbor Editor. Click on the \u0026ldquo;Create Calculator\u0026rdquo;. Select the calculator node you want to create from the list.\n\r   Built-in Calculator Calculator nodes that are used frequently are prepared from the beginning.\nArbor Reference : Calculator Reference\n"
    },
    {
        "uri": "/manual/parametercontainer/parameters.html",
        "title": "Type of parameter",
        "tags": [],
        "description": "",
        "summary": "Type Inspector Description     Int \r  Signed 32 bit integer   Long \r  Signed 64 bit integer   Float \r  Signed 32 bit floating point number   Bool \r  Boolean   String \r  String   Enum \r  enum type (typable)   Vector2 \r  2 dimensional vector   Vector3 \r  3 dimensional vector   Quaternion \r  Quaternion   Rect \r  2D rectangle   Bounds \r  An axis aligned bounding box.",
        "content": "\r    Type Inspector Description     Int \r  Signed 32 bit integer   Long \r  Signed 64 bit integer   Float \r  Signed 32 bit floating point number   Bool \r  Boolean   String \r  String   Enum \r  enum type (typable)   Vector2 \r  2 dimensional vector   Vector3 \r  3 dimensional vector   Quaternion \r  Quaternion   Rect \r  2D rectangle   Bounds \r  An axis aligned bounding box.   Color \r  Color   GameObject \r  Reference to GameObject   Transform \r  Reference to Transform component   RectTransform \r  Reference to RectTransform component   Rigidbody \r  Reference to Rigidbody component   Rigidbody2D \r  Reference to Rigidbody2D component   Component \r  Referece to Component (typable)   AssetObject \r  Referece to AssetObject (typable)   Variable  Parameter type that can be built by you   IntList \r  List of signed 32 bit integer   LongList \r  List of signed 64 bit integer   FloatList \r  List of signed 32 bit floating point number   BoolList \r  List of boolean   StringList \r  List of string   EnumList \r  List of enum type (typable)   Vector2List \r  List of 2 dimensional vector   Vector3List \r  List of 3 dimensional vector   QuaternionList \r  List of quaternion   RectList \r  List of 2D rectangle   BoundsList \r  List of an axis aligned bounding box   ColorList \r  List of color   GameObjectList \r  List of reference to GameObject   ComponentList \r  List of referece to Component (typable)   AssetObjectList \r  List of referece to AssetObject (typable)   VariableList  List of parameter type that can be built by you    About Variable With Variable you can create your own parameters.\nFor details, see \u0026ldquo;Scripting : Variable\u0026rdquo;.\nScripting : Variable\n"
    },
    {
        "uri": "/manual/statemachine/howtouse.html",
        "title": "How to use State Machine",
        "tags": [],
        "description": "",
        "summary": "Here, we will explain in detail how to use the state machine.\n Adding ArborFSM component\nDescribes how to add ArborFSM components to GameObject. Open ArborFSM Graph\nDescribes how to open the ArborFSM graph in the Arbor Editor window for editing. State\nDescribes how to edit the states of the ArborFSM graph. Reroute Node\nDescribes how to edit the reroute node in the ArborFSM graph.  ",
        "content": "Here, we will explain in detail how to use the state machine.\n Adding ArborFSM component\nDescribes how to add ArborFSM components to GameObject. Open ArborFSM Graph\nDescribes how to open the ArborFSM graph in the Arbor Editor window for editing. State\nDescribes how to edit the states of the ArborFSM graph. Reroute Node\nDescribes how to edit the reroute node in the ArborFSM graph.  "
    },
    {
        "uri": "/manual/statemachine/howtouse/state.html",
        "title": "State",
        "tags": [],
        "description": "",
        "summary": "Describes how to edit states.\nCreate State  Right-click the position of the graph where you want to create a state. Select \u0026ldquo;Create State\u0026rdquo; in the menu. Input the name of the state and decide with the Enter key.  \r Create Resident State  Right-click the position of the graph where you want to create a resident state. Select \u0026ldquo;Create Resident State\u0026rdquo; in the menu. Input the name of the state and decide with the Enter key.",
        "content": "Describes how to edit states.\nCreate State  Right-click the position of the graph where you want to create a state. Select \u0026ldquo;Create State\u0026rdquo; in the menu. Input the name of the state and decide with the Enter key.  \r Create Resident State  Right-click the position of the graph where you want to create a resident state. Select \u0026ldquo;Create Resident State\u0026rdquo; in the menu. Input the name of the state and decide with the Enter key.  \r Delete State  Select the node you want to delete Select \u0026ldquo;Delete\u0026rdquo; from the right-click menu in the graph, or press the Delete key  \r Set to start state  Click the gear icon or right click in the node header section. Select \u0026ldquo;Set Start State\u0026rdquo;.  \r Add Behaviour You need to add a StateBehaviour in order for the state to work.\n Click the gear icon or right click in the node header section. Select \u0026ldquo;Add Behaviour\u0026rdquo; Select the StateBehaviour you want to add from the StateBehaviour selection menu.  \r For details on the selection menu, refer to Behaviour Select Window.\nInsert Behaviour To insert StateBehaviour in an arbitrary position, add it from the \u0026ldquo;Insert Behaviour\u0026rdquo; button.\n Mouse over near the center of the separator between behaviors in the state. Click the displayed \u0026ldquo;Insert Behaviour\u0026rdquo; button. Select \u0026ldquo;Add Behaviour\u0026rdquo; Select the StateBehaviour you want to add from the StateBehaviour selection menu.  \r Drag Behaviour Move By dragging and dropping StateBehaviour, you can switch the order of behavior and move to another node.\n Drag the title bar of behaviour Drop to the other node on the same node or to another node  \r Copy Hold Ctrl (Win) / Option (Mac) while dragging and dropping it to copy.\n Drag the title bar of behaviour Hold Ctrl (Win) / Option (Mac) and drop it to another position on the same node or to another node  \r Delete Behaviour  Click the gear icon or right click in the title bar. Select \u0026ldquo;Delete\u0026rdquo; from the menu  \r Behaviour presets You can use the preset function of Unity.\n(Compatible with Unity 2018.1 and later)\nSave preset  Click the preset icon in the title bar of StateBehaviour Click the \u0026ldquo;Save current to\u0026hellip;\u0026rdquo; button in the Select Preset window Save as.  \r Apply preset  Click the preset icon in the title bar of StateBehaviour Select the preset you want to apply in the Select Preset window  \r Connect State Connect to existing node  Drag the StateLink field in StateBehaviour Drop to the connected state  \r Select the connection destination from the node list  Drag the StateLink field in StateBehaviour Drop on empty graph Select \u0026ldquo;NodeList Selection\u0026rdquo; from the menu Select the connection destination state in the node list  \r Connect And Create a new state  Drag the StateLink field in StateBehaviour Drop at the position in the graph where you want to create the state Select \u0026ldquo;Create State\u0026rdquo; in the menu. Input the name of the state and decide with the Enter key.  \r Disconnect State  Right-click on the connection line you want to disconnect Select \u0026ldquo;Disconnect\u0026rdquo; from the menu  \r StateLink settings Click on the StateLink gear icon to display the setting window.\n\r    Item Contens     Name Name of StateLink. When inputting, the display name of the StateLink field is changed.   Transition Timing Setting of transition timing.   Line Color Connection line color    TransitionTiming    Item Contens     Late Update Overwrite Reserve to transition when LateUpdate.If the transition is already reserved in the same frame, overwrite it.   Immediate Transit instantaneously at transition call.If the transition is looping, there is a possibility of infinite looping, so use with caution.   Late Update Dont Overwrite Reserve to transition when LateUpdate. (Default)If the transition is already reserved within the same frame, do not overwrite it.    Script customization For details on script customization, please see here\nScripting : StateBehaviour\n"
    },
    {
        "uri": "/manual/statemachine.html",
        "title": "State Machine",
        "tags": [],
        "description": "",
        "summary": "\r This section provides an overview of state machines and how to use them.\n What is a State Machine?\nProvides an overview of state machines. Node component\nDescribes the nodes used in the state machine. How to use State Machine\nI will explain the detailed usage. About each menu\nThis section describes various menus.  ",
        "content": "\r This section provides an overview of state machines and how to use them.\n What is a State Machine?\nProvides an overview of state machines. Node component\nDescribes the nodes used in the state machine. How to use State Machine\nI will explain the detailed usage. About each menu\nThis section describes various menus.  "
    },
    {
        "uri": "/manual/arboreditor/nodes/calculator.html",
        "title": "Calculator node",
        "tags": [],
        "description": "",
        "summary": "It is a calculation node usable in data flow.\nFor detailed usage, please refer to Data flow.",
        "content": "\r It is a calculation node usable in data flow.\nFor detailed usage, please refer to Data flow.\n"
    },
    {
        "uri": "/manual/arboreditor/nodes.html",
        "title": "Nodes common to graphs",
        "tags": [],
        "description": "",
        "summary": "Describes common nodes that can be used in all graphs.\n Comment node\nA node that can set a comment. Group node\nIt is a node for grouping nodes into one group. Calculator node\nThis is a calculation node used in the data flow.  ",
        "content": "Describes common nodes that can be used in all graphs.\n Comment node\nA node that can set a comment. Group node\nIt is a node for grouping nodes into one group. Calculator node\nThis is a calculation node used in the data flow.  "
    },
    {
        "uri": "/manual/scripting/behaviourtree/service.html",
        "title": "Service",
        "tags": [],
        "description": "",
        "summary": "By creating a Service script, you can add your own update processing etc. by describing the processing you want to do.\nCreate Service script file  Right click at the place you want to create from the Project window. From the right-click menu, select \u0026ldquo;Create\u0026gt; Arbor\u0026gt; Behavior tree\u0026gt; Service C# Script\u0026rdquo;.\n\r  Enter the file name and confirm  Function to be called When you add the created Service to the Composite node or Action node, each function of the script will be called.",
        "content": "By creating a Service script, you can add your own update processing etc. by describing the processing you want to do.\nCreate Service script file  Right click at the place you want to create from the Project window. From the right-click menu, select \u0026ldquo;Create\u0026gt; Arbor\u0026gt; Behavior tree\u0026gt; Service C# Script\u0026rdquo;.\n\r  Enter the file name and confirm  Function to be called When you add the created Service to the Composite node or Action node, each function of the script will be called.\n OnAwake\nIt is called the first time the node becomes active. OnStart\nIt is called when the node becomes active. OnUpdate\nCalled each time the node is active. For details about the execution timing, see Behavior tree's UpdateSettings.\nArbor Reference : BehaviourTree OnAbort\nCalled when the node is interrupted by the Decorator. OnEnd\nCalled when the node exits.  Important point  For enabled of MonoBehaviour are used internally already for execution control, please use the behaviourEnabled to be a substitute.  Call order \r  If more than one service is added to the node, it is called from the top in order. You can also use the callback method of MonoBehaviour other than OnEnable and OnDisable, but please be aware that Start() will be called after the first OnUpdate().  Declaring variables \r You can edit it in Arbor Editor by declaring a field with public or SerializedField attribute added to the created script.\n1 2 3 4 5 6 7 8 9 10 11 12  using UnityEngine; using System.Collections; using System.Collections.Generic; using Arbor; using Arbor.BehaviourTree; [AddComponentMenu(\u0026#34;\u0026#34;)] public class TestService : Service { public string myName; // The rest is omitted. }    Data flow It is possible to input / output values by data flow.\nFor details, see \u0026ldquo;Scripting: Data flow\u0026rdquo;.\nScripting : Data flow\n"
    },
    {
        "uri": "/manual/behaviourtree/howtouse.html",
        "title": "How to use Behaviour Tree",
        "tags": [],
        "description": "",
        "summary": "Here, we will explain in detail how to use the behaviour tree.\n Adding BehaviourTree component\nDescribes how to add BehaviourTree components to GameObject. Open BehaviourTree Graph\nDescribes how to open the BehaviourTree graph in the Arbor Editor window for editing. Node\nDescribes how to edit the nodes of the BehaviourTree graph.  ",
        "content": "Here, we will explain in detail how to use the behaviour tree.\n Adding BehaviourTree component\nDescribes how to add BehaviourTree components to GameObject. Open BehaviourTree Graph\nDescribes how to open the BehaviourTree graph in the Arbor Editor window for editing. Node\nDescribes how to edit the nodes of the BehaviourTree graph.  "
    },
    {
        "uri": "/manual/behaviourtree/howtouse/nodes.html",
        "title": "Node",
        "tags": [],
        "description": "",
        "summary": "Create Composite Node  Right-click the position of the graph where you want to create a node Select \u0026ldquo;Create Composite\u0026rdquo; in the menu Select the composite you want to create in the Composite Selection window.  \r Create Action Node  Right-click the position of the graph where you want to create a node Select \u0026ldquo;Create Action\u0026rdquo; in the menu Select the action you want to create in the Action Selection window.",
        "content": "Create Composite Node  Right-click the position of the graph where you want to create a node Select \u0026ldquo;Create Composite\u0026rdquo; in the menu Select the composite you want to create in the Composite Selection window.  \r Create Action Node  Right-click the position of the graph where you want to create a node Select \u0026ldquo;Create Action\u0026rdquo; in the menu Select the action you want to create in the Action Selection window.  \r For creating action script here\nScripting : ActionBehaviour\nConnecting nodes Route nodes, composite nodes, action nodes can connect parent-child relationships.\nConnect to existing node  Drag the connection slot at the top or bottom of the node Drop to the destination slot  \r Create a new node and connect  Drag the connection slot at the top or bottom of the node Drop at the position in the graph where you want to create the node Select \u0026ldquo;Create Composite\u0026rdquo; or \u0026ldquo;Create Action\u0026rdquo; from menu Select the script you want to create with various script selection menus  \r Disconnect node  Right-click on the connection line or connection slot you want to disconnect Select \u0026ldquo;Disconnect\u0026rdquo; from the menu  \r Changing the priority of nodes The priority order is determined by the positional relationship of the nodes between the siblings having the same parent.\n If you want to lower the priority, drag the node and move it to the right. If you want to increase the priority, drag the node and move it to the left.  \r Delete node  Select the node you want to delete Select \u0026ldquo;Delete\u0026rdquo; from the right-click menu in the graph, or press the Delete key  \r Move collectively child node  Alt + drag node (option ⌥ + drag on Mac)  \r Replace Composite You can replace only composites later, leaving the node's location and connection state intact.\n Click the gear icon in the node header section or right click on the header section Select \u0026ldquo;Replace Composite\u0026rdquo; Select a composite from the composite selection menu.  \r Replace Action You can replace only actions later, leaving the node's location and connection state intact.\n Click the gear icon in the node header section or right click on the header section Select \u0026ldquo;Replace Action\u0026rdquo; Select a action from the action selection menu.  \r Decorator Add Decorator Decorators can be added to composite nodes or action nodes.\n Click the gear icon in the node header section or right click on the header section Select \u0026ldquo;Add Decorator\u0026rdquo; Select the decorator you want to add from the decorator selection menu.  \r For creating decorator script here\nScripting : Decorator\nInsert Decorator You can insert a decorator at an arbitrary position.\n Mouseover near the center between the node header and main behavior.\nOr mouse-over over the center of the separator between the decorators at the position you want to insert. Click \u0026ldquo;Insert Decorator\u0026rdquo; button Select \u0026ldquo;Add Decorator\u0026rdquo; Select the decorator you want to add from the decorator selection menu.  \r Delete Decorator  Click the gear icon in the title bar of the decorator or right click on the title bar section Select \u0026ldquo;Delete\u0026rdquo; from the menu  \r Service Add Service Service can be added to composite node or action node.\n Click the gear icon in the node header section or right click on the header section Select \u0026ldquo;Add Service\u0026rdquo; Select the service you want to add from the service selection menu.  \r Since there is no built-in script in the service, it is necessary to prepare the service script beforehand.\nFor creating service script here\nScripting : Service\nInsert Service You can insert a service at an arbitrary position.\n Mouseover near the center between main behavior and node footer. Or mouse-over the center of the separator between services at the position you want to insert. Click \u0026ldquo;Insert Service\u0026rdquo; button Select \u0026ldquo;Add Service\u0026rdquo; Select the service you want to add from the service selection menu.  \r Delete Service  Click the gear icon in the title bar of the service or right click on the title bar section Select \u0026ldquo;Delete\u0026rdquo; from the menu  \r Script customization For customization with various scripts, please see here\nScripting\n"
    },
    {
        "uri": "/manual/scripting/dataflow/flexiblefield.html",
        "title": "FlexibleField",
        "tags": [],
        "description": "",
        "summary": "FlexibleField is useful for not only input slots but also constant values and parameters.\nExample script Create a TestFlexibleFieldBehaviour script file and write the following code.\n1 2 3 4 5 6 7 8 9 10 11 12 13  using UnityEngine;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestFlexibleFieldBehaviour : StateBehaviour\r{\rpublic FlexibleInt flexibleInt;\rpublic override void OnStateBegin()\r{\rDebug.Log(\u0026#34;flexibleInt : \u0026#34; + flexibleInt.value);\r}\r}    When this script is added to the state of ArborFSM, it becomes as follows.",
        "content": "FlexibleField is useful for not only input slots but also constant values and parameters.\nExample script Create a TestFlexibleFieldBehaviour script file and write the following code.\n1 2 3 4 5 6 7 8 9 10 11 12 13  using UnityEngine;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestFlexibleFieldBehaviour : StateBehaviour\r{\rpublic FlexibleInt flexibleInt;\rpublic override void OnStateBegin()\r{\rDebug.Log(\u0026#34;flexibleInt : \u0026#34; + flexibleInt.value);\r}\r}    When this script is added to the state of ArborFSM, it becomes as follows.\n\r FlexibleField related class  FlexibleInt FlexibleFloat FlexibleBool FlexibleGameObject FlexibleString FlexibleEnumAny FlexibleVector2 FlexibleVector3 FlexibleQuaternion FlexibleRect FlexibleBounds FlexibleColor FlexibleTransform FlexibleRectTransform FlexibleRigidbody FlexibleRigidbody2D FlexibleComponent FlexibleLong FlexibleField\n(Inherit and use it)  "
    },
    {
        "uri": "/manual/scripting/parameterreference/constraint.html",
        "title": "Type of constraints that reference",
        "tags": [],
        "description": "",
        "summary": "AnyParameterReference and ComponentParameterReference can constrain referencing types by specifying attributes.\nExample script 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23  using UnityEngine;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestConstraintReferenceBehaviour : StateBehaviour\r{\r[ClassExtends(typeof(AudioSource))]\rpublic ComponentParameterReference audioSource = new ComponentParameterReference();\r[ClassExtends(typeof(AudioClip))]\rpublic AssetObjectParameterReference audioClip = new AssetObjectParameterReference();\r// Use this for enter state\r\tpublic override void OnStateBegin()\r{\rAudioSource source = audioSource.",
        "content": "AnyParameterReference and ComponentParameterReference can constrain referencing types by specifying attributes.\nExample script 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23  using UnityEngine;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestConstraintReferenceBehaviour : StateBehaviour\r{\r[ClassExtends(typeof(AudioSource))]\rpublic ComponentParameterReference audioSource = new ComponentParameterReference();\r[ClassExtends(typeof(AudioClip))]\rpublic AssetObjectParameterReference audioClip = new AssetObjectParameterReference();\r// Use this for enter state\r\tpublic override void OnStateBegin()\r{\rAudioSource source = audioSource.value as AudioSource;\rif (source != null)\r{\rsource.clip = audioClip.value as AudioClip;\r}\r}\r}    Example of adding a script\n\r Example ParameterContainer\n\r Examples of available attributes    Target type Attributes     ComponentParameterReference Class derived from ClassTypeConstraintAttributeSlotTypeAttributeIt is also constrained to the Component class.   AssetObjectParameterReference Class derived from ClassTypeConstraintAttributeSlotTypeAttributeIt is also constrained to the asset object type.    "
    },
    {
        "uri": "/manual/scripting/calculator.html",
        "title": "Calculator",
        "tags": [],
        "description": "",
        "summary": "To customize a calculator node, you need to create a script file for the calculator node and describe the process you want to do.\nCreate a Calculator script file  Right-click on the location you want to create from the Project window. From the right-click menu, and select \u0026ldquo;Create\u0026gt; Arbor \u0026gt; Calculator C# Script\u0026rdquo;.\n\r  Determined to enter the file name  Function to be called By assigning the created Calculator to a calculator node in ArborEditor, each function of the script will be called.",
        "content": "To customize a calculator node, you need to create a script file for the calculator node and describe the process you want to do.\nCreate a Calculator script file  Right-click on the location you want to create from the Project window. From the right-click menu, and select \u0026ldquo;Create\u0026gt; Arbor \u0026gt; Calculator C# Script\u0026rdquo;.\n\r  Determined to enter the file name  Function to be called By assigning the created Calculator to a calculator node in ArborEditor, each function of the script will be called.\n OnCalculate\nIt is called when calculation is required.\nDescribe the operation process here and output the data with OutputSlot.SetValue. OnCheckDirty\nIt is called to determine if recalculation is necessary. Please override as necessary.\nPlease return whether necessary data for calculation has been changed and recalculation is necessary.\nIt is not necessary to be conscious of recalculation depending on the connection state of the input slot because it is judged internally by Arbor.\n(It should be true to handle external object values, such as Transform.position) MonoBehaviour message functions\nFor details, please see the MonoBehaviour Messages of Unity ScriptReference.  Flow of calculation  Call InputSlot.GetValue () as necessary. OnCheckDirty is called to determine if recalculation is necessary.\n(If the value was changed beforehand by OutputSlot.SetValue, recalculation will be performed regardless of the result of OnCheckDirty) On recalculation is required OnCalculate is called.  Call InputSlot.GetValue () as necessary in OnCaluculate. Below, we will trace InputSlot to get the value until recalculation is no longer needed.    Variables and Arbor Editor Basically, as with StateBehaviours Variables and Arbor Editor, declaring variables makes it displayable in Arbor Editor and editable.\nData flow It is important to input and output values by data flow in order to utilize compute nodes.\nFor details, see \u0026ldquo;Scripting: Data flow\u0026rdquo;.\nScripting : Data flow\n"
    },
    {
        "uri": "/manual/window/memberselect.html",
        "title": "Member Select Window",
        "tags": [],
        "description": "",
        "summary": "Window for selecting member\n\r UI description Search bar \r You can search by member name.\nFilter \r Switches the filter according to the member of mold.\nFilter List \r A list of member types to filter.\nMember List \r A list of selectable members.\nYou can select the member by clicking.",
        "content": "\rWindow for selecting member\n\r UI description Search bar \r You can search by member name.\nFilter \r Switches the filter according to the member of mold.\nFilter List \r A list of member types to filter.\nMember List \r A list of selectable members.\nYou can select the member by clicking.\n"
    },
    {
        "uri": "/manual/scripting/behaviourattribute/behaviourhelp.html",
        "title": "BehaviourHelp",
        "tags": [],
        "description": "",
        "summary": "This attribute specifies the URL to be opened by clicking the help button of the behaviour title bar.\nScript Reference : BehaviourHelp\nExample Script Create a script named TestBehaviourHelp and write the following code.\n1 2 3 4 5 6 7 8 9 10  using UnityEngine;\rusing System.Collections;\rusing System.Collections.Generic;\rusing Arbor;\r[BehaviourHelp(\u0026#34;https://assetstore.unity.com/packages/slug/112239\u0026#34;)]\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestBehaviourHelp : StateBehaviour\r{\r}    Operation check Select \u0026ldquo;Scripts / TestBehaviourHelp\u0026rdquo; from \u0026ldquo;add behavior\u0026rdquo; of state and click the help button displayed in the behaviour title bar.",
        "content": "This attribute specifies the URL to be opened by clicking the help button of the behaviour title bar.\nScript Reference : BehaviourHelp\nExample Script Create a script named TestBehaviourHelp and write the following code.\n1 2 3 4 5 6 7 8 9 10  using UnityEngine;\rusing System.Collections;\rusing System.Collections.Generic;\rusing Arbor;\r[BehaviourHelp(\u0026#34;https://assetstore.unity.com/packages/slug/112239\u0026#34;)]\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestBehaviourHelp : StateBehaviour\r{\r}    Operation check Select \u0026ldquo;Scripts / TestBehaviourHelp\u0026rdquo; from \u0026ldquo;add behavior\u0026rdquo; of state and click the help button displayed in the behaviour title bar.\n\r "
    },
    {
        "uri": "/manual/dataflow/list.html",
        "title": "List (Array)",
        "tags": [],
        "description": "",
        "summary": "Arbor data flow supports lists (arrays).\nPlease use the behavior of each operation node and state for access.\nExample using a list \r The following is an example of randomly extracting elements from the list set in ParameterContainer.\nGetParameter  Added StringList parameter to graph parameters.\n\r  Get with GetParameter.\n\r   List.Count  Add the List.Count operation node to get the number of elements in the string type list.",
        "content": "Arbor data flow supports lists (arrays).\nPlease use the behavior of each operation node and state for access.\nExample using a list \r The following is an example of randomly extracting elements from the list set in ParameterContainer.\nGetParameter  Added StringList parameter to graph parameters.\n\r  Get with GetParameter.\n\r   List.Count  Add the List.Count operation node to get the number of elements in the string type list.\n\r   Random.RangeInt  Calculate the random index using the number of elements in the obtained list.\n\r   List.GetElement  Gets a list element by random index.\n\r   SetParameter  Added SelectString parameter to graph parameters.\n\r  Set the retrieved random element in the SelectString parameter.\n\r  Repeat at 1 second intervals with a TimeTransition to see it change randomly.  Calculator Node Use a calculation node to obtain various data that does not change the elements of List.\n List.Contains List.Count List.GetElement List.IndexOf List.LastIndexOf List.ToArrayList NewArrayList  StateBehaviour Use state behaviors to modify List elements.\n List.AddElement List.Clear List.InsertElement List.RemoveAtIndex List.RemoveElement List.SetElement  Ahead-of-Time (AOT) Restrictions Due to restrictions in the precompiled environment such as IL2CPP build, an exception will occur when using List\u0026lt;T\u0026gt; that is not referenced from the code.\nSee Unity - Manual: Scripting restrictions for more information on precompilation limits.\nHere's how to use it that causes problems with Arbor.\n Parameter  AssetObjectList ComponentList EnumList   List-related built-in scripts  To avoid such AOT problems, add code similar to the following.\n1 2 3 4 5 6 7  using System.Collections.Generic;\rpublic class AOTCodeGeneration\r{\r// For example, if you create a Foo type but List\u0026lt;Foo\u0026gt; is not used in your code.\r\tpublic List\u0026lt;Foo\u0026gt; myStructList = new List\u0026lt;Foo\u0026gt;();\r}    You do not need to use the AOTCodeGeneration class.\nWriting in a script like this will ensure that the compiler will generate the appropriate code.\n"
    },
    {
        "uri": "/manual/parametercontainer/access.html",
        "title": "Access to parameters",
        "tags": [],
        "description": "",
        "summary": "Create Access Node You can create access nodes by dragging and dropping parameters into the graph view.\n 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.\n(For Set node, execution nodes of various graphs are created. Please connect so that it will be executed after creation.)  \r Access by ParameterReference In scripts with ParameterReference related classes, you can set parameters that handle values.",
        "content": "Create Access Node You can create access nodes by dragging and dropping parameters into the graph view.\n 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.\n(For Set node, execution nodes of various graphs are created. Please connect so that it will be executed after creation.)  \r Access by ParameterReference In scripts with ParameterReference related classes, you can set parameters that handle values.\nSetting by ParameterReference field  Set ParameterContainer with the parameter you want to refer to. Set parameters from drop down.  \r Input from data slot The Container field also supports input from data slots.\n 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)  \r For data slots, refer to Data Flow.\nDrag and drop parameters  Drag the drag area of the parameter you want to set. Drop to the ParameterReference you want to reference.  \r Create a script that references parameters You can refer to parameters from your own script.\nFor details, see \u0026ldquo;Scripting : Parameter Reference\u0026rdquo;.\nScripting : Parameter Reference\n"
    },
    {
        "uri": "/manual/statemachine/menu.html",
        "title": "About each menu",
        "tags": [],
        "description": "",
        "summary": "Graph menu Right-click the graph to display the menu.\n\r    Item Contens     Create State Create a normal state.   Create Resident State Create a resident state.   Create Calculator Create a Calculator node.   Create Group Create a group.   Create Comment Create a comment.   Cut Cut the selected nodes.   Copy Copy the selected nodes.",
        "content": "Graph menu Right-click the graph to display the menu.\n\r    Item Contens     Create State Create a normal state.   Create Resident State Create a resident state.   Create Calculator Create a Calculator node.   Create Group Create a group.   Create Comment Create a comment.   Cut Cut the selected nodes.   Copy Copy the selected nodes.   Paste Paste the copied nodes.   Duplicate Duplicate the selected nodes.   Delete Delete the selected nodes.   Expand All Expand all the selected node's behaviour.   Collapse All Collapse all the selected node's behaviour.    State menu Right-click the header part of the state or click the gear icon to display the menu.\n\r    Item Contens     Rename Change the name of the state.   Show Comment Switch the display of the node comment field.\r    Set Start State Set it to the start state.   Breakpoint Toggle breakpoint setting.\r    Add Behaviour Add StateBehaviour.   Paste Behaviour Paste the copied StateBehaviour.   Expand all Expand all the behaviors added to the node.   Collapse all Collapse all the behaviors added to the node.   Cut Cut the node.   Copy Copy the node.   Duplicate Duplicate the node.   Delete Delete the node.   Transition (Valid only during play) If you select while playing, it forcibly transits.    StateBehaviour menu Right-click the title bar of StateBehaviour or click the gear icon to display the menu.\n\r    Item Contens     Move Up Move the order up.   Move Down Move the order down.   Copy Copy the StateBehaviour.   Paste Overwrite the copied StateBehaviour (valid only for the same type)   Delete Delete the StateBehaviour.   Edit Script Open the script editor.   Edit Editor Script Open the Editor script (only when there is an Editor script)    Connection line right click menu Right-click on the connection line to display the menu.\n\r    Item Contens     Go to Previous State Scroll to the state of the transition source.   Go to Next State Scroll to the state of the transition destination.   Go to Previous Node Scroll to the previous node (displayed only if there is a reroute node)   Go to Next Node Scroll to the next node (displayed only if there is a reroute node)   Reroute Create a reroute node at the clicked position.   Disconnect Disconnect it.   Settings Opens the StateLink settings window.    表示メニュー Click on the \u0026ldquo;View\u0026rdquo; button on the toolbar to display it.\n\r    Item Contens     Expand All Expand all collapsed behavior   Collapse All Collapse all deployed behaviors   Node Comment \r NormalShow according to the setting of each node.Show AllShow all node comments.Show Commented OnlyShow only node comments that have been written.Hide AllHide all node comments.   DataSlot \r Show Outside NodeDisplay data slots outside the frame of a node.Show Inside NodeDisplay data slots in the frame of the node.Show FlexiblyDisplay the data slot outside the frame of the node only when connecting without displaying it.   StateLink \r Show Node Top\r Show the StateLink at the top of the node.Show Behaviour Top\r Show the StateLink at the top of the behaviour.Show Behaviour Bottom\r Show the StateLink at the bottom of the behaviour.Show Node Bottom\r Show the StateLink at the bottom of the node.    Debug menu Click on the \u0026ldquo;Debug\u0026rdquo; button on the toolbar to display it.\n\r    Item Contens     Show all data values always Always display data values regardless of display setting of individual data lines   Show all data values Change to show the current value of all of the data line.   Hide all data values Change to hide the current value of all of the data line.   Set Breakpoints Sets the breakpoint of the selected states.   Release Breakpoints Releases the breakpoint in the selected states.   Release all Breakpoints Release breakpoints of all states.   Clear Count (Valid only during play) Change the state transition count to 0.    Reroute Node menu \r    Item Contens     Settings Opens the StateLink settings window.   Cut Cut the node.   Copy Copy the node.   Duplicate Duplicate the node.   Delete Delete the node.   Delete (Keep Connection) Delete only the rerout node while keeping the connection.    "
    },
    {
        "uri": "/manual/statemachine/howtouse/reroute.html",
        "title": "Reroute Node",
        "tags": [],
        "description": "",
        "summary": "You can use the reroute node to bundle the state connection lines and change the direction.\nConnect Connect And Create a new Reroute node  Drag the StateLink field in StateBehaviour Drop at the position in the graph where you want to create the state Select \u0026ldquo;Reroute\u0026rdquo; in the menu.  \r Insert  Right-click the position where you want to create a reroute node on the connection line. Select \u0026ldquo;Reroute\u0026rdquo; in the menu.",
        "content": "You can use the reroute node to bundle the state connection lines and change the direction.\nConnect Connect And Create a new Reroute node  Drag the StateLink field in StateBehaviour Drop at the position in the graph where you want to create the state Select \u0026ldquo;Reroute\u0026rdquo; in the menu.  \r Insert  Right-click the position where you want to create a reroute node on the connection line. Select \u0026ldquo;Reroute\u0026rdquo; in the menu.  \r Change direction  Select reroute node to change direction Drag the direction icon to change it.  \r Delete while keeping connection  Right click on the reroute node Select \u0026ldquo;Delete (Keep Connection)\u0026quot;.  \r "
    },
    {
        "uri": "/manual/arboreditor/howtouse.html",
        "title": "Common usage of graph",
        "tags": [],
        "description": "",
        "summary": "Basic operation method    Operation Windows Mac     Scroll Mouse middle button drag Mouse middle button drag    Alt + Mouse left button drag option ⌥ + Mouse button drag    Operation with scroll bar Operation with scroll bar    Wheel scroll(Switch by setting) Wheel scroll(Switch by setting)   Zoom out(Unity2017.3.0 or later) Wheel scroll(Switch by setting) Wheel scroll(Switch by setting)    Alt + Mouse right button drag option ⌥ + control ⌃ + Mouse button drag   Rectangle selection of nodes Mouse left button drag Mouse button drag   Move node Mouse left button drag on node Mouse button drag on node   Resize note Mouse left button drag edge of node Mouse button drag edge of node   Context menu Mouse right button click control ⌃ + Mouse button click    For details on how to create nodes etc.",
        "content": "Basic operation method    Operation Windows Mac     Scroll Mouse middle button drag Mouse middle button drag    Alt + Mouse left button drag option ⌥ + Mouse button drag    Operation with scroll bar Operation with scroll bar    Wheel scroll(Switch by setting) Wheel scroll(Switch by setting)   Zoom out(Unity2017.3.0 or later) Wheel scroll(Switch by setting) Wheel scroll(Switch by setting)    Alt + Mouse right button drag option ⌥ + control ⌃ + Mouse button drag   Rectangle selection of nodes Mouse left button drag Mouse button drag   Move node Mouse left button drag on node Mouse button drag on node   Resize note Mouse left button drag edge of node Mouse button drag edge of node   Context menu Mouse right button click control ⌃ + Mouse button click    For details on how to create nodes etc. please refer to the manual of each graph.\nShortcut key    Operation Windows Mac     Copy node Ctrl + C key command ⌘ + C key   Cut node Ctrl + X key command ⌘ + X key   Paste node Ctrl + V key command ⌘ + V key   Duplicate node Ctrl + D key command ⌘ + D key   Delete node Delete key Delete key   Scroll to position of selected node F key F key   Select all nodes Ctrl + A key command ⌘ + A key    The name change of node  Double click on the header part at the top of the inside of the node frame, select \u0026ldquo;Rename\u0026rdquo; from right click or setting icon.\nEnter in the displayed text box.\n\r   Delete Node  Click to select nodes. Right-click on an empty area and select \u0026ldquo;Delete\u0026rdquo;, or press the Delete key.\n\r   Open the Behaviour manual For built-in scripts and scripts with BehaviorHelp attribute, the help icon to open the manual is displayed.\n Click the help icon next to the title bar of various behaviors\n\r   Scripting : BehaviourHelp\n"
    },
    {
        "uri": "/manual/behaviourtree/menu.html",
        "title": "About each menu",
        "tags": [],
        "description": "",
        "summary": "Graph menu Right-click the graph to display the menu.\n\r    Item Contents     Create Composite Create a composite node.   Create Action Create a action node.   Create Calculator Create a Calculator node.   Create Group Create a group.   Create Comment Create a comment.   Cut Cut the selected nodes.   Copy Copy the selected nodes.   Paste Paste the copied nodes.",
        "content": "Graph menu Right-click the graph to display the menu.\n\r    Item Contents     Create Composite Create a composite node.   Create Action Create a action node.   Create Calculator Create a Calculator node.   Create Group Create a group.   Create Comment Create a comment.   Cut Cut the selected nodes.   Copy Copy the selected nodes.   Paste Paste the copied nodes.   Duplicate Duplicate the selected nodes.   Delete Delete the selected nodes.   Expand All Expand all the selected node's behaviour.   Collapse All Collapse all the selected node's behaviour.    Composite node menu Right-click the header part of the node or click the gear icon to display the menu.\n\r    Item Contents     Rename Change the name of the node.   Show Comment Switch the display of the node comment field.\r    Breakpoint Toggle breakpoint setting.\r    Replace Composite Replace it with another composite script.   Add Decorator Add a decorator.   Add Service Add a service.   Paste Decorator As New Paste the copied decorator.   Paste Service As New Paste the copied service.   Expand All Expand all the behaviour of the node.   Collapse All Collapse all the behaviour of the node.   Cut Cut the node.   Copy Copy the node.   Duplicate Duplicate the node.   Delete Delete the node.    Composite menu Right-click the title bar or click the gear icon to display the menu.\n\r    Item Contents     Copy Copy the composite.   Paste Values Overwrite it with the value of the copied composite.(Only valid for the same type)   Edit Script Open the script editor.   Edit Editor Script Open the Editor script (only when there is an Editor script)    Action node menu Right-click the header part of the node or click the gear icon to display the menu.\n\r    Item Contents     Rename Change the name of the node.   Show Comment Switch the display of the node comment field.\r    Breakpoint Toggle breakpoint setting.\r    Replace Action Replace it with another action script.   Add Decorator Add a decorator.   Add Service Add a service.   Paste Decorator As New Paste the copied decorator.   Paste Service As New Paste the copied service.   Expand All Expand all the behaviour of the node.   Collapse All Collapse all the behaviour of the node.   Cut Cut the node.   Copy Copy the node.   Duplicate Duplicate the node.   Delete Delete the node.    Action menu Right-click the title bar or click the gear icon to display the menu.\n\r    Item Contents     Copy Copy the action.   Paste Values Overwrite it with the value of the copied action.(Only valid for the same type)   Edit Script Open the script editor.   Edit Editor Script Open the Editor script (only when there is an Editor script)    Decorator menu Right-click the title bar or click the gear icon to display the menu.\n\r    Item Contents     Move Up Move the order up.   Move Down Move the order down.   Copy Copy the Decorator.   Paste Values Overwrite it with the value of the copied decorator(Only valid for the same type)   Delete Delete the Decorator.   Edit Script Open the script editor.   Edit Editor Script Open the Editor script (only when there is an Editor script)    Service menu Right-click the title bar or click the gear icon to display the menu.\n\r    Item Contents     Move Up Move the order up.   Move Down Move the order down.   Copy Copy the Service.   Paste Values Overwrite it with the value of the copied service(Only valid for the same type)   Delete Delete the Service.   Edit Script Open the script editor.   Edit Editor Script Open the Editor script (only when there is an Editor script)    Connection line menu Right-click on the connection line to display the menu.\n\r    Item Contents     Go to Parent Node Scroll to the position of the parent node.   Go to Child Node Scroll to the position of the child node.   Disconnect Disconnect it.    Debug menu Click on the \u0026ldquo;Debug\u0026rdquo; button on the toolbar to display it.\n\r    Item Contents     Show all data values always Always display data values regardless of display setting of individual data lines   Show all data values Change to show the current value of all of the data line.   Hide all data values Change to hide the current value of all of the data line.   Set Breakpoints Sets the breakpoint of the selected states.   Release Breakpoints Releases the breakpoint in the selected states.   Release all Breakpoints Release breakpoints of all states.    "
    },
    {
        "uri": "/manual/behaviourtree.html",
        "title": "Behaviour Tree",
        "tags": [],
        "description": "",
        "summary": "\r This section provides an overview of behaviour trees and how to use them.\n What is a Behaviour Tree?\nProvides an overview of behavior trees. Node component\nDescribes the nodes used in the behavior tree. How to use Behaviour Tree\nI will explain the detailed usage. About each menu\nThis section describes various menus.  ",
        "content": "\r This section provides an overview of behaviour trees and how to use them.\n What is a Behaviour Tree?\nProvides an overview of behavior trees. Node component\nDescribes the nodes used in the behavior tree. How to use Behaviour Tree\nI will explain the detailed usage. About each menu\nThis section describes various menus.  "
    },
    {
        "uri": "/manual/scripting/dataflow/constraint.html",
        "title": "Type constraints of slots",
        "tags": [],
        "description": "",
        "summary": "For some slots, you can use attributes to constrain the connectable types.\nExample script Create TestConstraintSlotBehaviour script file and write the following code.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21  using UnityEngine;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestConstraintSlotBehaviour : StateBehaviour\r{\r[ClassExtends(typeof(AudioSource))]\rpublic InputSlotComponent audioSource = new InputSlotComponent();\r[ClassExtends(typeof(AudioClip))]\rpublic InputSlotUnityObject audioClip = new InputSlotUnityObject();\rpublic override void OnStateBegin()\r{\rAudioSource source_ = audioSource.",
        "content": "\r For some slots, you can use attributes to constrain the connectable types.\nExample script Create TestConstraintSlotBehaviour script file and write the following code.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21  using UnityEngine;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestConstraintSlotBehaviour : StateBehaviour\r{\r[ClassExtends(typeof(AudioSource))]\rpublic InputSlotComponent audioSource = new InputSlotComponent();\r[ClassExtends(typeof(AudioClip))]\rpublic InputSlotUnityObject audioClip = new InputSlotUnityObject();\rpublic override void OnStateBegin()\r{\rAudioSource source_ = audioSource.GetValue\u0026lt;AudioSource\u0026gt;();\rif (source_ != null)\r{\rsource_.clip = audioClip.GetValue\u0026lt;AudioClip\u0026gt;();\r}\r}\r}    Available Attributes    Class Attribute     OutputSlotAny SlotTypeAttribute   InputSlotAny Class derived from ClassTypeConstraintAttributeSlotTypeAttribute   InputSlotComponent Class derived from ClassTypeConstraintAttributeSlotTypeAttributeIt is also constrained to the Component class.   InputSlotUnityObject Class derived from ClassTypeConstraintAttributeSlotTypeAttributeIt is also constrained to the UnityEngine.Object class.   FlexibleComponent Class derived from ClassTypeConstraintAttributeSlotTypeAttributeIt is also constrained to the Component class.    "
    },
    {
        "uri": "/manual/scripting/behaviourinterface.html",
        "title": "Behaviour interfaces",
        "tags": [],
        "description": "",
        "summary": "There are several interfaces available for scripts such as StateBehaviour, Calculator, and ActionBehaviour.\nTarget scripts The target script is as follows.\n StateBehaviour Calculator ActionBehaviour Decorator Service  INodeBehaviourSerializationCallbackReceiver An interface for receiving serialization callbacks in the node's behaviour script.\nScriptReference: INodeBehaviourSerializationCallbackReceiver\nSince the Unity standard ISerializationCallbackReceiver is used internally, please use this if you want to receive a callback.\nExample Script 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40  using UnityEngine;\rusing System.",
        "content": "There are several interfaces available for scripts such as StateBehaviour, Calculator, and ActionBehaviour.\nTarget scripts The target script is as follows.\n StateBehaviour Calculator ActionBehaviour Decorator Service  INodeBehaviourSerializationCallbackReceiver An interface for receiving serialization callbacks in the node's behaviour script.\nScriptReference: INodeBehaviourSerializationCallbackReceiver\nSince the Unity standard ISerializationCallbackReceiver is used internally, please use this if you want to receive a callback.\nExample Script 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40  using UnityEngine;\rusing System.Collections.Generic;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class ExampleSerializationCallback : StateBehaviour, INodeBehaviourSerializationCallbackReceiver\r{\rpublic List\u0026lt;int\u0026gt; _keys = new List\u0026lt;int\u0026gt; { 3, 4, 5 };\rpublic List\u0026lt;string\u0026gt; _values = new List\u0026lt;string\u0026gt; { \u0026#34;I\u0026#34;, \u0026#34;Love\u0026#34;, \u0026#34;Unity\u0026#34; };\rpublic Dictionary\u0026lt;int, string\u0026gt; _myDictionary = new Dictionary\u0026lt;int, string\u0026gt;();\rpublic void OnBeforeSerialize()\r{\r_keys.Clear();\r_values.Clear();\rforeach (var kvp in _myDictionary)\r{\r_keys.Add(kvp.Key);\r_values.Add(kvp.Value);\r}\r}\rpublic void OnAfterDeserialize()\r{\r_myDictionary = new Dictionary\u0026lt;int, string\u0026gt;();\rfor (int i = 0; i \u0026lt; Mathf.Min(_keys.Count, _values.Count); i++)\r_myDictionary.Add(_keys[i], _values[i]);\r}\rpublic override void OnStateBegin()\r{\rforeach (var kvp in _myDictionary)\r{\rDebug.Log(\u0026#34;Key: \u0026#34; + kvp.Key + \u0026#34; value: \u0026#34; + kvp.Value);\r}\r}\r}    INodeGraphContaiiner An interface to use when a node's behavior script contains subgraphs.\nScriptReference: INodeGraphContaiiner\n"
    },
    {
        "uri": "/manual/window/welcomewindow.html",
        "title": "Welcome Window",
        "tags": [],
        "description": "",
        "summary": "Welcome Window\n\r This window is displayed immediately after importing Arbor.\nLinks to usage and support forums are posted.\nOpen welcome window  It will be displayed immediately after importing Arbor, or immediately after opening the project unless automatic display is turned off. If you want to open it manually, select \u0026ldquo;Window / Arbor / Welcome\u0026rdquo; from the menu.  \r UI description Language setting \r Set the display language.",
        "content": "\rWelcome Window\n\r This window is displayed immediately after importing Arbor.\nLinks to usage and support forums are posted.\nOpen welcome window  It will be displayed immediately after importing Arbor, or immediately after opening the project unless automatic display is turned off. If you want to open it manually, select \u0026ldquo;Window / Arbor / Welcome\u0026rdquo; from the menu.  \r UI description Language setting \r Set the display language.\nDon't auto display until the next version \r It is a toggle that does not automatically display until the next version.\nIf checked, it will disappear when you open this project (until the Arbor version is updated).\nMenu \r This menu opens the official website and documents.\nClick the icon to open it.\nOpen Arbor Editor \r Open the Arbor Editor window.\n"
    },
    {
        "uri": "/manual/scripting/behaviourattribute.html",
        "title": "Behaviour attributes",
        "tags": [],
        "description": "",
        "summary": "Some scripts such as StateBehaviour, Calculator, and ActionBehaviour have several usable attributes.\nTarget scripts The scripts that can be used for the attributes introduced below are as follows.\n StateBehaviour Calculator ActionBehaviour Decorator Service  Attributes  AddBehaviourMenu\nAttribute that can specify the path in the add behaviour menu. HideBehaviour\nAttribute to hide in add behaviour menu. BehaviourTitle\nSpecify the name displayed in the behaviour's title bar. BehaviourHelp\nThis attribute specifies the URL to be opened by clicking the help button of the behaviour title bar.",
        "content": "Some scripts such as StateBehaviour, Calculator, and ActionBehaviour have several usable attributes.\nTarget scripts The scripts that can be used for the attributes introduced below are as follows.\n StateBehaviour Calculator ActionBehaviour Decorator Service  Attributes  AddBehaviourMenu\nAttribute that can specify the path in the add behaviour menu. HideBehaviour\nAttribute to hide in add behaviour menu. BehaviourTitle\nSpecify the name displayed in the behaviour's title bar. BehaviourHelp\nThis attribute specifies the URL to be opened by clicking the help button of the behaviour title bar.  "
    },
    {
        "uri": "/manual/dataflow/invoke.html",
        "title": "Invoke Member",
        "tags": [],
        "description": "",
        "summary": "Describes how to invoke a member of any type.\nHere, as an example, explanation is given assuming the use with ArborFSM.\nInvokeMethod \r Invokes methods and sets values for fields and properties.\nReference : InvokeMethod\nAdd InvokeMethod  Click the state gear icon and select \u0026ldquo;Add Behaviour\u0026rdquo;. Select \u0026ldquo;Events / InvokeMethod\u0026rdquo;.  \r InvokeMethod settings  Click the \u0026ldquo;Add New Event Type\u0026rdquo; button and select the timing you want to invoke.",
        "content": "\r Describes how to invoke a member of any type.\nHere, as an example, explanation is given assuming the use with ArborFSM.\nInvokeMethod \r Invokes methods and sets values for fields and properties.\nReference : InvokeMethod\nAdd InvokeMethod  Click the state gear icon and select \u0026ldquo;Add Behaviour\u0026rdquo;. Select \u0026ldquo;Events / InvokeMethod\u0026rdquo;.  \r InvokeMethod settings  Click the \u0026ldquo;Add New Event Type\u0026rdquo; button and select the timing you want to invoke. Click the \u0026ldquo;+\u0026rdquo; icon of the event to add invoke member data. Set type and member.  Type Select Window Member Select Window   Set \u0026lt;Target\u0026gt;.  If it is a Unity object, it can be set with FlexibleField. For other types, it is accepted by input from the data flow. No setting items for static members.   Set the argument value.  \r GetValue calculator node \r Gets the value of the field or property and outputs it to the data flow.\nReference : InvokeMethod\nAdd GetValue  Right-click on the graph and select \u0026ldquo;Create Calculator\u0026rdquo;. Select \u0026ldquo;Events / GetValue\u0026rdquo;.  \r GetValue settings  Set type and member.  Type Select Window Member Select Window   Set \u0026lt;Target\u0026gt;.  If it is a Unity object, it can be set with FlexibleField. For other types, it is accepted by input from the data flow. No setting items for static members.   Connect the value output slot.  \r Refactoring If you want to change the name of the type or member you are calling, you can use the RenamedFrom attribute to associate the new name with the old name to avoid broken references.\n1 2 3 4 5 6 7 8 9 10 11 12  using UnityEngine;\rusing Arbor;\r[RenamedFrom(\u0026#34;Player\u0026#34;)]\rpublic class Character : MonoBehaviour\r{\r[RenamedFrom(\u0026#34;TakeDamage\u0026#34;)]\rpublic void InflictDamage(int damage)\r{\r// ...\r\t}\r}    The old name must include the namespace.\nIt is not necessary when defining in the global namespace such as the above example.\nNotes on UWP build When Scripting Backend is set to \u0026ldquo;.NET\u0026rdquo; in UWP build, RenamedFrom specified in the type does not work.\nManaged code stripping Because member calls are made using Reflection, managed code stripping settings may cause the called member to be removed as unused code.\nPlease set the Preserve attribute and link.xml file so that the callee code is not deleted.\nFor more information, see Managed code stripping in the Unity Manual.\n"
    },
    {
        "uri": "/manual/parametercontainer/globalparametercontainer.html",
        "title": "GlobalParameterContainer",
        "tags": [],
        "description": "",
        "summary": "GlobalParameterContainer is a component to use when there are parameters that you want to keep even if you change the scene.\nAddition of GlobalParameterContainer Create button in Hierarchy window  Click the Create button in the Hierarchy window or right click in the window Select \u0026ldquo;Arbor / GlobalParameterContainer\u0026rdquo; A GameObject with GlobalParameterContainer is created.  \r Inspector window “Add Component” button  Select the GameObject you want to add GlobalParameterContainer in the Hierarchy window Click the \u0026ldquo;Add Component\u0026rdquo; button in the Inspector window Select \u0026ldquo;Arbor / GlobalParameterContainer\u0026rdquo; GlobalParameterContainer is added to GameObject.",
        "content": "GlobalParameterContainer is a component to use when there are parameters that you want to keep even if you change the scene.\nAddition of GlobalParameterContainer Create button in Hierarchy window  Click the Create button in the Hierarchy window or right click in the window Select \u0026ldquo;Arbor / GlobalParameterContainer\u0026rdquo; A GameObject with GlobalParameterContainer is created.  \r Inspector window “Add Component” button  Select the GameObject you want to add GlobalParameterContainer in the Hierarchy window Click the \u0026ldquo;Add Component\u0026rdquo; button in the Inspector window Select \u0026ldquo;Arbor / GlobalParameterContainer\u0026rdquo; GlobalParameterContainer is added to GameObject.  \r Setting GlobalParameterContainer  ParameterContainer with parameters to be shared between scenes is created in advance and Prefabized.\n\r  Select GameObject to which GlobalParameterContainer is added.\nSpecify Prefab of ParameterContainer created in Prefab of Inspector.\n\r   Reference parameters via GlobalParameterContainer By specifying GlobalParameterContainer in the Container field of ParameterReference, parameters can be referred.\n"
    },
    {
        "uri": "/manual/scripting/dataflow/datalink.html",
        "title": "DataLink attribute",
        "tags": [],
        "description": "",
        "summary": "By using DataLink attribute, input from constant or data flow can be accepted even if there is no corresponding type InputSlot or FlexibleField.\nScriptReference : DataLink\nExample script Create ExampleDataLinkBehaviour script file and write the following code.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  using UnityEngine;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class ExampleDataLinkBehaviour : StateBehaviour\r{\r[System.Serializable]\rpublic class ExampleData\r{\rpublic string name = \u0026#34;Test\u0026#34;;\rpublic float power = 100f;\r}\r[DataLink]\rpublic ExampleData exampleData;\r}    Notes  It can only be used in the fields of classes that inherit NodeBehaviour (such as StateBehaviour and ActionBehaviour).",
        "content": "\r By using DataLink attribute, input from constant or data flow can be accepted even if there is no corresponding type InputSlot or FlexibleField.\nScriptReference : DataLink\nExample script Create ExampleDataLinkBehaviour script file and write the following code.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  using UnityEngine;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class ExampleDataLinkBehaviour : StateBehaviour\r{\r[System.Serializable]\rpublic class ExampleData\r{\rpublic string name = \u0026#34;Test\u0026#34;;\rpublic float power = 100f;\r}\r[DataLink]\rpublic ExampleData exampleData;\r}    Notes  It can only be used in the fields of classes that inherit NodeBehaviour (such as StateBehaviour and ActionBehaviour). It can not be used for arrays or lists.  "
    },
    {
        "uri": "/manual/subgraph.html",
        "title": "Hierarchy of graph",
        "tags": [],
        "description": "",
        "summary": "Using graph hierarchy makes it easier to combine flexible AI etc. because you can split graph with rough behavior and detailed behavior.\n Create a subgraph\nDescribes how to create a subgraph. Argument of the graph\nDescribes the graph arguments.  ",
        "content": "Using graph hierarchy makes it easier to combine flexible AI etc. because you can split graph with rough behavior and detailed behavior.\n Create a subgraph\nDescribes how to create a subgraph. Argument of the graph\nDescribes the graph arguments.  "
    },
    {
        "uri": "/manual/parametercontainer/relatedscripts.html",
        "title": "Associated built-in script",
        "tags": [],
        "description": "",
        "summary": "We will introduce some of the built-in script.\nStateBehaviour    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.",
        "content": "We will introduce some of the built-in script.\nStateBehaviour    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.\nArbor Reference\n"
    },
    {
        "uri": "/manual/parametercontainer.html",
        "title": "ParameterContainer",
        "tags": [],
        "description": "",
        "summary": "ParameterContainer is a component used to perform data sharing etc. between graphs.\nAdd ParameterContainer to GameObject and set various types of parameters.\n Add ParameterContainer\nDescribes how to add the ParameterContainer component to GameObject. Edit Parameter\nThis section explains how to add and edit parameters. Type of parameter\nDescribes the types of parameters. Access to parameters\nExplains how to get and set the value of a parameter. GlobalParameterContainer\nThis section describes the parameters that you want to keep even across scenes.",
        "content": "ParameterContainer is a component used to perform data sharing etc. between graphs.\nAdd ParameterContainer to GameObject and set various types of parameters.\n Add ParameterContainer\nDescribes how to add the ParameterContainer component to GameObject. Edit Parameter\nThis section explains how to add and edit parameters. Type of parameter\nDescribes the types of parameters. Access to parameters\nExplains how to get and set the value of a parameter. GlobalParameterContainer\nThis section describes the parameters that you want to keep even across scenes. Associated built-in script\nHere is an example of a built-in script related to parameters.  "
    },
    {
        "uri": "/manual/scripting/parameterreference.html",
        "title": "Parameter Reference",
        "tags": [],
        "description": "",
        "summary": "This section describes how to reference the parameters from the script.\n ParameterReference\nBy declaring the ParameterReference association class in the field, you can refer to the parameter. FlexibleField\nUsing the FlexibleField association class, you can select and reference constant values, parameter reference, or data flow input. Type of constraints that reference\nFor some fields, you can specify the attribute to constrain the referenced type.  ",
        "content": "This section describes how to reference the parameters from the script.\n ParameterReference\nBy declaring the ParameterReference association class in the field, you can refer to the parameter. FlexibleField\nUsing the FlexibleField association class, you can select and reference constant values, parameter reference, or data flow input. Type of constraints that reference\nFor some fields, you can specify the attribute to constrain the referenced type.  "
    },
    {
        "uri": "/manual/dataflow.html",
        "title": "Data flow",
        "tags": [],
        "description": "",
        "summary": "Arbor has a function to pass data between nodes of the graph.\n What is a Data Flow?\nThis section provides an overview of data flow. How to use data slots\nDescribes how to use the data flow. Calculator node\nDescribes the calculation node dedicated to data flow. List (Array)\nDescribes how to use a list (array) in the data flow. Invoke Member\nDescribes how to invoke an existing type member without writing a script.",
        "content": "Arbor has a function to pass data between nodes of the graph.\n What is a Data Flow?\nThis section provides an overview of data flow. How to use data slots\nDescribes how to use the data flow. Calculator node\nDescribes the calculation node dedicated to data flow. List (Array)\nDescribes how to use a list (array) in the data flow. Invoke Member\nDescribes how to invoke an existing type member without writing a script.  Scripting You can also use data flow from your own scripts.\nFor details, see \u0026ldquo;Scripting : Data flow\u0026rdquo;.\nScripting : Data flow\n"
    },
    {
        "uri": "/manual/scripting/dataflow.html",
        "title": "Data flow",
        "tags": [],
        "description": "",
        "summary": "This section describes how to input/output data flow from script.\n Output slot\nData can be output by declaring an output slot such as OutpotSlotInt. Input slot\nData can be output by declaring an input slot such as InputSlotInt. FlexibleField\nFlexibleField is useful for not only input slots but also constant values and parameters. Type constraints of slots\nFor some slots, you can use attributes to constrain the connectable types. DataLink attribute",
        "content": "This section describes how to input/output data flow from script.\n Output slot\nData can be output by declaring an output slot such as OutpotSlotInt. Input slot\nData can be output by declaring an input slot such as InputSlotInt. FlexibleField\nFlexibleField is useful for not only input slots but also constant values and parameters. Type constraints of slots\nFor some slots, you can use attributes to constrain the connectable types. DataLink attribute\nBy using DataLink attribute, input from constant or data flow can be accepted even if there is no corresponding type InputSlot or FlexibleField.  Customize Create data slot You can also create a data slot of your own class.\nFor details, refer to \u0026ldquo;Scripting : Data Slot\u0026rdquo;.\nScripting : Data Slot\nVariable If you also create a parameter, you can create it easily using Variable Generator.\nFor details, see \u0026ldquo;Scripting : Variable\u0026rdquo;.\nScripting : Variable\nCalculator node You can also create scripts to use for calculator nodes.\nFor details, see \u0026ldquo;Scripting : Calculator\u0026rdquo;.\nScripting : Calculator\n"
    },
    {
        "uri": "/manual/scripting/dataslot.html",
        "title": "Data Slot",
        "tags": [],
        "description": "",
        "summary": "This section explains how to create your own data slot.\nAs an example I will explain how to make data until you exchange data through simple player data creation.\nCreate PlayerData script file Create a script file.\n Select \u0026ldquo;Create\u0026gt; C # Script\u0026rdquo; from the Project window right-click menu. This time we will name PlayerData.  Write in PlayerData.cs as follows.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  using UnityEngine; using System.",
        "content": "This section explains how to create your own data slot.\nAs an example I will explain how to make data until you exchange data through simple player data creation.\nCreate PlayerData script file Create a script file.\n Select \u0026ldquo;Create\u0026gt; C # Script\u0026rdquo; from the Project window right-click menu. This time we will name PlayerData.  Write in PlayerData.cs as follows.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  using UnityEngine; using System.Collections; using Arbor; [System.Serializable] public class PlayerData { public int maxHP; public int hp; } [System.Serializable] public class OutputSlotPlayerData : OutputSlot\u0026lt;PlayerData\u0026gt; { } [System.Serializable] public class InputSlotPlayerData : InputSlot\u0026lt;PlayerData\u0026gt; { }    Code explanation Create PlayerData class This time we are simply creating a class with maximum HP and current HP.\nCreating the OutputSlotPlayerData class We are creating a class for outputting PlayerData class.\nAll processing is provided in OutputSlot\u0026lt;T\u0026gt;, so you do not need to write anything in particular.\nWe are preparing to avoid the Unity specification that the generic class can not be serialized.\nCreating the InputSlotPlayerData class We are creating a class to enter PlayerData class.\nSince processing necessary for InputSlot\u0026lt;T\u0026gt; is also prepared here, there is no need to describe contents in particular.\n"
    },
    {
        "uri": "/manual/scripting.html",
        "title": "Scripting",
        "tags": [],
        "description": "",
        "summary": "Arbor can be freely customized by writing a script.\n StateBehaviour\nThis section explains the scripts assigned to states. BehaviourTree\nThis section explains the scripts assigned to BehaviourTree. Calculator\nThis section explains the scripts assigned to calculator nodes. Behaviour interfaces\nThis section explains the interface that can be used in the behavior script. Behaviour attributes\nThis section explains the attributes that can be set in the behavior script. Parameter Reference",
        "content": "Arbor can be freely customized by writing a script.\n StateBehaviour\nThis section explains the scripts assigned to states. BehaviourTree\nThis section explains the scripts assigned to BehaviourTree. Calculator\nThis section explains the scripts assigned to calculator nodes. Behaviour interfaces\nThis section explains the interface that can be used in the behavior script. Behaviour attributes\nThis section explains the attributes that can be set in the behavior script. Parameter Reference\nThis section explains how to reference parameters from a script. Data flow\nThis section explains how to reference data flow from script. Data Slot\nThis section explains how to create a data slot yourself. Variable\nThis section explains how to create your own parameters.  Editor extension Such as available inspector extension and PropertyDrawer is I can also be used to StateBehaviour in Unity\n Multilingual editor support\nThis section explains how to perform a multi-lingual Arbor when the editor extension.  "
    },
    {
        "uri": "/manual/scripting/variable.html",
        "title": "Variable",
        "tags": [],
        "description": "",
        "summary": "This section explains how to register your own parameters in ParameterContainer.\nCreating a Variable script file Generate script with Variable Generator Create a script for your own parameters.\n Select \u0026ldquo;Create \u0026gt; Arbor \u0026gt; Variable C# Script\u0026rdquo; from the Project window right-click menu.\n\r  Enter the parameter class name in the \u0026ldquo;Variable Name\u0026rdquo; field of the Variale Generator window Create a script by pressing \u0026ldquo;Create\u0026rdquo; button.\n\r  If it is a name that can not be used, an error box will be displayed, so please correct the Variable Name.",
        "content": "This section explains how to register your own parameters in ParameterContainer.\nCreating a Variable script file Generate script with Variable Generator Create a script for your own parameters.\n Select \u0026ldquo;Create \u0026gt; Arbor \u0026gt; Variable C# Script\u0026rdquo; from the Project window right-click menu.\n\r  Enter the parameter class name in the \u0026ldquo;Variable Name\u0026rdquo; field of the Variale Generator window Create a script by pressing \u0026ldquo;Create\u0026rdquo; button.\n\r  If it is a name that can not be used, an error box will be displayed, so please correct the Variable Name. When the OpenEditor check box is checked, the script editor opens after pressing the \u0026ldquo;Create\u0026rdquo; button.    Example of creation Script example created by entering \u0026ldquo;EnemyInfo\u0026rdquo; in \u0026ldquo;Variable Name\u0026rdquo; and pressing \u0026ldquo;Create\u0026rdquo; button\nEnemyInfoVariable.cs 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51  using UnityEngine; using System.Collections; using System.Collections.Generic; using Arbor; [System.Serializable] public class EnemyInfo { // Declare Serialize Fields } [System.Serializable] public class FlexibleEnemyInfo : FlexibleField\u0026lt;EnemyInfo\u0026gt; { public FlexibleEnemyInfo(EnemyInfo value) : base(value) { } public FlexibleEnemyInfo(AnyParameterReference parameter) : base(parameter) { } public FlexibleEnemyInfo(InputSlotAny slot) : base(slot) { } public static explicit operator EnemyInfo(FlexibleEnemyInfo flexible) { return flexible.value; } public static explicit operator FlexibleEnemyInfo(EnemyInfo value) { return new FlexibleEnemyInfo(value); } } [System.Serializable] public class InputSlotEnemyInfo : InputSlot\u0026lt;EnemyInfo\u0026gt; { } [System.Serializable] public class OutputSlotEnemyInfo : OutputSlot\u0026lt;EnemyInfo\u0026gt; { } [AddComponentMenu(\u0026#34;\u0026#34;)] public class EnemyInfoVariable : Variable\u0026lt;EnemyInfo\u0026gt; { }    EnemyInfoListVariable.cs 1 2 3 4 5 6 7 8 9  using UnityEngine; using System.Collections; using System.Collections.Generic; using Arbor; [AddComponentMenu(\u0026#34;\u0026#34;)] public class EnemyInfoListVariable : VariableList\u0026lt;EnemyInfo\u0026gt; { }    Commentary  EnemyInfo\nA class of parameters to make by yourself.\nBy adding a field for serialization, you can set your own parameters with ParameterContainer. FlexibleEnemyInfo\nClass for making it possible to refer to by switching between Constant, Parameter, and Calculator. InputSlotEnemyInfo\nClass for the input slot of EnemyInfo. OutputSlotEnemyInfo\nClass for EnemyInfo output slot. EnemyInfoVariable\nVariable class to register to ParameterContainer.\nThe class name and the script file name must match. EnemyInfoListVariable\nVariableList class to register to ParameterContainer.\nThe class name and the script file name must match.  Add field Add a field to the generated script.\nAs an example, let's add some fields to EnemyInfo.\n1 2 3 4 5 6 7  [System.Serializable] public class EnemyInfo { // Declare Serialize Fields \tpublic string displayName; public Sprite icon; }    Addition to ParameterContainer Add the created Variable to ParameterContainer.\n Please create ParameterContainer in advance. Press the \u0026ldquo;+\u0026rdquo; button and select \u0026ldquo;Variable\u0026gt; Created Variable Name\u0026rdquo;.\n\r  Parameters are added\n\r   Reference to Variable parameter FlexibleField You can refer to it by giving StateBehaviour etc a class of Flexible + Variable Name defined in the generated script file.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  using UnityEngine; using System.Collections; using System.Collections.Generic; using Arbor; [AddComponentMenu(\u0026#34;\u0026#34;)] public class EnemyInfoBehaviour : StateBehaviour { public FlexibleEnemyInfo enemyInfo; // Use this for enter state \tpublic override void OnStateBegin() { EnemyInfo value = enemyInfo.value; Debug.Log(value.displayName); } }    \r AnyParameterReference Use AnyParameterReference when referring directly to Parameter.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22  using UnityEngine; using System.Collections; using System.Collections.Generic; using Arbor; [AddComponentMenu(\u0026#34;\u0026#34;)] public class EnemyInfoBehaviour2 : StateBehaviour { [ClassExtends(typeof(EnemyInfo))] public AnyParameterReference enemyInfo = new AnyParameterReference(); // Use this for enter state \tpublic override void OnStateBegin() { Parameter enemyInfoParameter = enemyInfo.parameter; if (enemyInfoParameter != null) { EnemyInfo value = enemyInfoParameter.value as EnemyInfo; Debug.Log(value.displayName); } } }    \r "
    },
    {
        "uri": "/manual/window.html",
        "title": "Window",
        "tags": [],
        "description": "",
        "summary": "The following describes each window.\n Behaviour Select Window\n\rWindow for selecting behaviour\n\r  Type Select Window\n\rWindow for selecting type\n\r  Member Select Window\n\rWindow for selecting member\n\r  Welcome Window\n\rWindow displayed immediately after importing Arbor\n\r   ",
        "content": "The following describes each window.\n Behaviour Select Window\n\rWindow for selecting behaviour\n\r  Type Select Window\n\rWindow for selecting type\n\r  Member Select Window\n\rWindow for selecting member\n\r  Welcome Window\n\rWindow displayed immediately after importing Arbor\n\r   "
    },
    {
        "uri": "/manual/scripting/localization.html",
        "title": "Multilingual editor support",
        "tags": [],
        "description": "",
        "summary": "Behavior attributes and editor extensions can support multiple languages.\nPreparing language files In order to support multiple languages, it is necessary to add each language file.\nAlso, register the folder where the language file is placed.\nSince language files can only be used in the editor, place them in the Editor folder.\nLanguagePath Placing a language file To register a folder, place the LanguagePath asset in a folder.\n Select the folder to place in the Project window and right-click.",
        "content": "Behavior attributes and editor extensions can support multiple languages.\nPreparing language files In order to support multiple languages, it is necessary to add each language file.\nAlso, register the folder where the language file is placed.\nSince language files can only be used in the editor, place them in the Editor folder.\nLanguagePath Placing a language file To register a folder, place the LanguagePath asset in a folder.\n Select the folder to place in the Project window and right-click. Select \u0026ldquo;Create / Arbor / Editor / LanguagePath\u0026rdquo;. As there are no particular restrictions on the name, please give me the name you like.  \r Create language file If you create a file of \u0026ldquo;Language name.txt\u0026rdquo; in the folder where the LanguagePath asset is placed, it will be recognized as a language file.\n\u0026ldquo;Language name\u0026rdquo; must have the same name as the value of the SystemLanguage enumerator.\nUnity ScriptReference : SystemLanguage\nWriting a language file In the language file, write it in the format of \u0026ldquo;word key: display character string\u0026rdquo; line by line.\nAlso, if the line head is \u0026ldquo;//\u0026rdquo; it is regarded as a comment and that line is ignored.\nFor example, create Japanese.txt and fill in as follows. 1 2 3 4  // ボスの挙動関連\rMenu_ExampleBossAttack: 多言語対応/ボスの攻撃\rExampleBossAttack: ボスの攻撃\rExampleBossDefense: ボスの防御  \nNext, create English.txt and fill it in as follows. 1 2 3 4  // Boss behavior related\rMenu_ExampleBossAttack: Localization/Boss\u0026#39;s attack\rExampleBossAttack: Boss\u0026#39;s attack\rExampleBossDefense: Boss\u0026#39;s defense  \nExample of folder structure  Assets  Editor  Languages  LanguagePath.asset English.txt Japanese.txt        Language word reference Reference from editor extension To reference from an editor extension, use ArborEditor.Localization.GetWord() or GetTextContent().\nExample script of editor extension TestLocalizationBehaviour.cs 1 2 3 4 5 6 7  using UnityEngine;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\rpublic class TestLocalizationBehaviour : StateBehaviour\r{\r}    TestLocalizationBehaviourEditor.cs 1 2 3 4 5 6 7 8 9 10 11 12  using UnityEditor;\rusing ArborEditor;\r[CustomEditor(typeof(TestLocalizationBehaviour))]\rpublic class TestLocalizationBehaviourEditor : Editor\r{\rpublic override void OnInspectorGUI()\r{\rEditorGUILayout.LabelField(Localization.GetWord(\u0026#34;ExampleBossAttack\u0026#34;));\rEditorGUILayout.LabelField(Localization.GetWord(\u0026#34;ExampleBossDefense\u0026#34;));\r}\r}    Display example of editor extension \r References in behavior attributes If you set the localization field to true on AddBehaviourMenu or Behavior Title, it will be referenced from the language file.\nExample script using attributes 1 2 3 4 5 6 7 8 9  using UnityEngine;\rusing Arbor;\r[AddComponentMenu(\u0026#34;\u0026#34;)]\r[AddBehaviourMenu(\u0026#34;Menu_ExampleBossAttack\u0026#34;,localization=true)]\r[BehaviourTitle(\u0026#34;ExampleBossAttack\u0026#34;,localization =true)]\rpublic class ExampleBossAttackBehaviour : StateBehaviour\r{\r}    Display example using attributes English \r Japanese \r "
    },
    {
        "uri": "/manual/extra.html",
        "title": "Extra",
        "tags": [],
        "description": "",
        "summary": "It will introduce extra features to further convenient use of the Arbor.\n Use with PackageManager  ",
        "content": "It will introduce extra features to further convenient use of the Arbor.\n Use with PackageManager  "
    },
    {
        "uri": "/manual/updateguide.html",
        "title": "Update Guide",
        "tags": [],
        "description": "",
        "summary": "When updating to the latest version, please refer to the following guide.\nUpdate procedure  Please be sure to make a backup of the project before the update. If you are opening an existing scene, create a new scene from “File / New Scene” in the menu. If you are opening the Arbor Editor window, close it once. Already Removed Arbor folder that have been imported. Import a new version of Arbor.",
        "content": "When updating to the latest version, please refer to the following guide.\nUpdate procedure  Please be sure to make a backup of the project before the update. If you are opening an existing scene, create a new scene from “File / New Scene” in the menu. If you are opening the Arbor Editor window, close it once. Already Removed Arbor folder that have been imported. Import a new version of Arbor.  Version update guide  Updating to Arbor 3.7 Updating to Arbor 3.6  "
    },
    {
        "uri": "/",
        "title": "Home",
        "tags": [],
        "description": "",
        "summary": "Let's visually create state transition diagrams such as game progress and AI using Arbor.\nArbor can be purchased from the Unity Asset Store.\n Arbor Documentation provides support to learn how to use Arbor.\nYou can read the manual as a whole, or you can use it only as a reference as a reference.\nIf you are using Arbor for the first time, please read Manual : Getting Started.\nDocument  Manual",
        "content": "Let's visually create state transition diagrams such as game progress and AI using Arbor.\nArbor can be purchased from the Unity Asset Store.\n Arbor Documentation provides support to learn how to use Arbor.\nYou can read the manual as a whole, or you can use it only as a reference as a reference.\nIf you are using Arbor for the first time, please read Manual : Getting Started.\nDocument  Manual\nYou can learn about the main usage of Arbor. Arbor Reference\nIt is a reference about components that can be used in Arbor. Script Reference\nIt is a reference for a script that can be used in the Arbor.  Further sources of information  Tutorial\nYou can learn how to use Arbor in practical form. Arbor Forum\nAsk questions about how to use or post feature requests.  "
    },
    {
        "uri": "/search.html",
        "title": "Search",
        "tags": [],
        "description": "",
        "summary": "",
        "content": ""
    },
    {
        "uri": "/manual.html",
        "title": "Manual",
        "tags": [],
        "description": "",
        "summary": "Here Ask me how to use and detailed reference for Arbor. Please more information, see from the following link.\nThe manual uses Unity 2019.4 for explanation.\nPlease note that the appearance may differ depending on the version and settings of Unity.\n Getting Started\nFor those who want to use for the first time Arbor You are a basic overview and operation. ArborEditor window\nI explains the ArborEditor window. StateMachine",
        "content": "Here Ask me how to use and detailed reference for Arbor. Please more information, see from the following link.\nThe manual uses Unity 2019.4 for explanation.\nPlease note that the appearance may differ depending on the version and settings of Unity.\n Getting Started\nFor those who want to use for the first time Arbor You are a basic overview and operation. ArborEditor window\nI explains the ArborEditor window. StateMachine\nI explain StateMachine. BehaviourTree \nI explain BehaviourTree added from Arbor 3. Hierarchy of graph\nDescribes graph hierarchization. ParameterContainer\nI explain ParameterContainer. Data flow\nI will explain passing data by data slot. Scripting\nI will explain how to customize using scripts. Window\nThe following describes each window. Extra\nIt will introduce extra features to further convenient use of the Arbor. UpdateGuide\nWhen updating to the latest version, please refer to this guide. Arbor Reference\nReference on main Component, built-in Behavior, built-in Calculator Script Reference\nThe reference for script  "
    },
    {
        "uri": "/categories.html",
        "title": "Categories",
        "tags": [],
        "description": "",
        "summary": "",
        "content": ""
    },
    {
        "uri": "/tags.html",
        "title": "Tags",
        "tags": [],
        "description": "",
        "summary": "",
        "content": ""
    }
];