* Initial commit
* [Bot] Automated dotnet-format update
* Added debug toggle
* [Bot] Automated dotnet-format update
* Update StateMachines.unity
* Removed serializable actions/conditions. Added current state name in state machine component. Added more spheres to test scene.
* minor
* Renaming from 'Scriptable' prefix to 'SO' suffix.
Co-Authored-By: Ciro Continisio <20049224+ciro-unity@users.noreply.github.com>
* Adjusted test scene. Renamed StateAction.Perform() to OnUpdate(). Added a couple of Tooltips and comments.
The test scene was adjusted to display how to override the behaviour of the Spheres by attatching a different `ChaseDataSO` to the `StateMachine`, specifying a different target.
Tooltips and comments were added to try to explain the workflow of overriding Action and Condition data.
* [Bot] Automated dotnet-format update
* Removed ScriptableObjects array from StateMachine. Adjusted test scene. Single l...
Conflicts are all regarding the renaming of the namespace from Deivsky to UOP1
# Conflicts:
# UOP1_Project/Assets/Scripts/StateMachine/Core/IStateComponent.cs
# UOP1_Project/Assets/Scripts/StateMachine/Core/State.cs
# UOP1_Project/Assets/Scripts/StateMachine/Core/StateAction.cs
# UOP1_Project/Assets/Scripts/StateMachine/Core/StateCondition.cs
# UOP1_Project/Assets/Scripts/StateMachine/Core/StateMachine.cs
# UOP1_Project/Assets/Scripts/StateMachine/Core/StateTransition.cs
# UOP1_Project/Assets/Scripts/StateMachine/ScriptableObjects/StateActionSO.cs
# UOP1_Project/Assets/Scripts/StateMachine/ScriptableObjects/StateConditionSO.cs
# UOP1_Project/Assets/Scripts/StateMachine/ScriptableObjects/StateSO.cs
# UOP1_Project/Assets/Scripts/StateMachine/ScriptableObjects/StateTransitionSO.cs
* Initial commit. Replaced StateTransitionSO with TransitionTableSO.
* [Bot] Automated dotnet-format update
* Deleted old transitions assets.
* Editor
Created TransitionTableEditor and StateEditor.
- TransitionTableEditor allows you to fully configure the transition table in an easy way.
- A list of the states in the table is displayed, with the initial state at the top.
- States can be sorted manually to change the initial state or just for ordering.
- The order of the states bellow the initial shouldn't affect the behaviour of the state machine.
- Added buttons to easily switch back and forth between state editor and transition table editor.
- The state editor is a simple reorderable list with all the action in the state.
- Clicking on a state will display all of its transitions, along with their conditions.
- Transitions can be sorted to change the order in which checks are executed.
- Transit...
* Added a specialized class for debugging the state machine
The StateMachineDebugger class will generate logs for state changes together with the conditions results. Providing more in-depth information.
* [Bot] Automated dotnet-format update
* Improved the debugger's log with SO names
Added changes so the state machine debugger can use the ScriptableObjects names in the log, improving readabilty.
Now the log also shows the transition name.
* [Bot] Automated dotnet-format update
* Added a feature to also list the active StateActions
The debugger can now list the actions activated by the state.
Also added two options to toggle the logging of the conditions and the actions
* [Bot] Automated dotnet-format update
* Small improvements and documentation
Changed the State name for a reference to the SO of origin (like the other classes)
Removed the name of the transition for compatibility with the changes made...
Condition results are now cached so they are only evaluated once per frame, regardless of how many times they are being checked in the state machine logic.
Caching is made by each instance of the state machine and the condition respective scriptable object.
Added a boolean value to enable/disable this feature on each Condition Scriptable Object individually.
Extra internal changes:
The abstract function Condition.Statement() changed from public to protected so it can only be used inside the internal Condition.GetStatement().
Added documentation regarding all Get methods for the abstract Scriptable Objects to clarify their behaviors.
Removed StateTransitionSO since it was replaced by TransitionTableSO
Changed public TransitionTableSO.GetInitialState() to internal.
Changed a few SO references to their specialized classes.
* Changes to Action and Condition script templates
- Uncommented `OnStateEnter` and `OnStateExit`
- Added property to cast `OriginSO` to the derived class
* Minor changes
- Moved call to method `OnStateEnter` of the initial State from `Awake` to `Start`
- Added summary for `OriginSO` properties
- Added buttons to edit 'To States' in the Transition Table Editor, just like with 'From States'
* [Bot] Automated dotnet-format update
* Fixed reordering transitions
Fixed a bug that was causing states to go out of order when reordering transitions.
* TransitionTableEditor code cleanup and visual improvements
- States and transitions will only show the up/down buttons when they can move up or down (first item can't move up, last item can't move down).
- Changed zebra colours to light grey/lighter grey.
- The state of the window is better preserved to not close an opened state after performing sorting, removing, and/or undo opera...