Arbor 3.3.0 release


FEATURES

InvokeMethod

Added built-in script which calls method of Component.
You can input arguments from the data flow and output return values and out arguments to the data flow.

Built-in StateBehaviour

  • Added InvokeMethod.

Scripts

  • Added ArborEvent class (Core classes to perform the method call)
  • Added ShowEventAttribute class (Attributes that can be selected even for methods with arguments of type not supported)
  • Added HideEventAttribute class (Attribute to be hidden so that it can not be selected by ArborEvent)

ObjectPool

Added function to pool instantiated objects.

Built-in StateBehaviour

  • Added AdvancedPooling which performs advance pooling.
  • Add UsePool flag to instantiate from ObjectPool.
    • InstantiateGameObject
    • SubStateMachineReference
    • SubBehaviourTreeReference
  • Changed to return to ObjectPool at Destroy.
    (Return to Pool only when Instantiating from ObjectPool)

    • DestroyGameObject
    • OnCollisionEnterDestroy
    • OnCollisionExitDestroy
    • OnTriggerEnterDestroy
    • OnTriggerExitDestroy
    • OnCollisionEnter2DDestroy
    • OnCollisionExit2DDestroy
    • OnTriggerEnter2DDestroy
    • OnTriggerExit2DDestroy

Built-in ActionBehaviour

  • Added AdvancedPooling which performs advance pooling.
  • Add UsePool flag to instantiate from ObjectPool.
    • InstantiateGameObject
    • SubStateMachineReference
    • SubBehaviourTreeReference
  • Changed to return to ObjectPool at Destroy.
    (Return to Pool only when Instantiating from ObjectPool)

    • DestroyGameObject

Scripts

  • Added ObjectPool class to ObjectPooling namespace.

Update contents

ADDITION

ArborEditor

  • Added “Delete (Keep Connection)” in the right click menu of the data slot reroute node.
  • Added “Delete (Keep Connection)” in the right click menu of the StateLink reroute node.
  • Added “Disconnect” in the right-click menu of the data slot. (“Disconnect All” in case of output slot)
  • Added “Edit Editor Script” in the menu of NodeBehaviour. (Only when there is an Editor extension script)
  • Added “Show all data values always” check in the debug menu on the toolbar.

ArborFSM

  • Added infinite loop debug setting.

BehaviourTree

  • Added infinite loop debug setting.

ParameterContainer

  • – Added enum type.

Built-in StateBehaviour

  • Added support for enum type of CalcParameter.
  • Added support for enum type of ParameterTransition.
  • Added “Save To Prefab” in SubStateMachine’s menu.
  • Added “Save To Prefab” in SubBehavioutTree’s menu.

Built-in ActionBehaviour

  • Added “Save To Prefab” in SubStateMachine’s menu.
  • Added “Save To Prefab” in SubBehavioutTree’s menu.

Built-in Decorator

  • Added support for enum type of ParameterCheck.
  • Added support for enum type of ParameterConditionLoop.

Editor extension

  • Added LanguagePath asset which specifies installation directory path of self-created script language file.

Scripts

  • Added OutputSlotTypable class.
  • Added InputSlotTypable class.
  • Added FlexibleEnumAny class (FlexibleField system class that can handle enum)
  • ArborFSMInternal class
    • Added prevTransitionState property which can refer to the state before transition.
    • Added nextTransitionState property which can refer to state after transition.
  • StateBehaviour class
    • Added prevTransitionState property which can refer to the state before transition.
    • Added nextTransitionState property which can refer to state after transition.
    • Added stateLinkCount property to return the number of StateLink.
    • Added GetStateLink method to return StateLink.
    • Added RebuildStateLinkCache method to rebuild StateLink cache.
  • Added Disconnect method to DataSlot class.
  • Added AddBehaviourMenu multilingual support.
  • Added BehaviourTitle multilingual support.
  • Added BehaviourMenuItem multilingual support.

CHANGES

Arbor Editor

  • Changed to prevent nodes from being selected when clicking the node’s main content GUI.
  • Change GUI style of data slot.
  • Changed to display the type name on tooltip when mouse over the reroute node of data slot.
  • Integrate StateLink reroute node pin menu into node’s right click menu.
  • Changed to not change the connection destination when StateLink is dragged and it is in the stateLink frame.
  • Changed GUI style of NodeLinkSlot of BehaviourTree.
  • Changed to display the current condition of the decorator.
  • Adjust the display position of the behaviour selection popup when pressing the insert behaviour button.
  • Changed to display on the front when mouse over the connection line.
  • Changed to be able to select None in the type selection popup.
  • Supports selection of type selection popup window with key input.
  • Changed ParameterContainer referenced by ParameterReference so that it can also be set from data slot.
  • Adjust the color of connecting lines of other data types.

BehaviourTree

  • When Decorator returns failure on node active, change ActionBehaviour and Service OnStart () not to call.

Built-in StateBehaviour

  • Changed “Prefab” field of InstantiateGameObject to FlexibleComponent.
  • Changed “External FSM” field of SubStateMachineReference to FlexibleComponent.
  • Changed “External BT” field of SubBehaviourTreeReference to FlexibleComponent.

Built-in ActionBehaviour

  • Changed “Prefab” field of InstantiateGameObject to FlexibleComponent.
  • Changed “External FSM” field of SubStateMachineReference to FlexibleComponent.
  • Changed “External BT” field of SubBehaviourTreeReference to FlexibleComponent.

OPTIMIZE

Arbor Editor

  • Optimize by changing Reflection to delegate.

ArborFSM

  • Changed StateLink to cache beforehand.

Scripts

  • Changed EachField class to cache the field.
  • Optimized by changing Reflection use of EachField class to delegate. (No change in AOT or IL2CPP environment)

OBSOLETE

Scripts

  • Change the nextState property of ArborFSMInternal to obsolete.
    (Added reserverdState instead)
  • Changed the TidyAssemblyTypeName method of ClassTypeReference to obsolete.
    (Added TypeUtility.TidyAssemblyTypeName instead)
  • Changed the GetAssemblyType method of ClassTypeReference to Obsolete.
    (Added TypeUtility.GetAssemblyType instead)

FIXES

Arbor Editor

  • Fix to switch Arbor Editor selection when Hierarchy selected graph instantiated by SubStateMachineReference or SubBehaviourTreeReference.
  • Fixed an exception occurred in the editor when there was a class named StateLink different from Arbor.StateLink.
  • Fixed that connection was broken when Undo insertion of reroute node of data slot.
  • Fixed that rendering of dragging connection line was done even in other than Repaint event.

ArborFSM

  • A bug when calling Stop() on the same graph in OnStateBegin()
    • Fixed an exception occurred.
    • Fixed that OnStateEnd() and OnStateBegin() on next execution will not be called.
    • Fixed that OnStateBegin () after this state was called.
  • Fix to hide fields not wanted to be edited from Inspector of ArborFSM instantiated by SubStateMachineReference.
  • Fixed that extra copies of NodeBehaviours used in child graphs by SubStateMachine etc. when “Copy Component” was done in Inspector.

BehaviourTree

  • Fix to hide fields not wanted to be edited from Inspector of BehaviourTree instantiated by SubBehaviourTreeReference.
  • ixed that extra copies of NodeBehaviours used in child graphs by SubStateMachine etc. when “Copy Component” was done in Inspector.

Waypoint

  • Fixed deleting the next element when deleting an element for which Points’ Transform is not set.

Scripts

  • Fixed bug that can not be found when passing target type array to EachField.Find.
  • Fixed not to scan the contents when passing an instance of target type to EachField.Find.
  • Fixed deleting the next element when WeightList<T> element type is Unity object and trying to delete an element not setting object.

Others

  • Support for Unity 2018.3.0b3.

Asset Store

Update procedure

Please follow the procedure below when updating Arbor.

  1. Please be sure to make a backup of the project before the update.
  2. If you are opening an existing scene, create a new scene from “File / New Scene” in the menu.
  3. If you are opening the Arbor Editor window, close it once.
  4. Already Removed Arbor folder that have been imported.
  5. Import a new version of Arbor.