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.
* Adding scenesLoader scene
* Adding main menu and level 1 scenes for test
* Adding loading system
* Adding scenes data (still WIP)
* SOs for menus and levels and adding scenes
* Adding events and listeners for scene loading
* Main menu and loading bar scripts
* pushing ScenesLoader scene
* Main menu scene, added menu disable on start
* Added check to avoid loading scene multiple times
* Changed to L key instead of space bar for load (space used to jump)
* Clean
* Added clear lists option and tweaks on MM and ScenesLoader scenes
* Adjustments on scene loading
* Added level 2 and level end trigger in level 1
* Added new obstacle material for lvl2 and tagged Player
* Added custom inspector for GameScene ScriptableObjects
It improves workflow and minimizes user error by allowing a designer to pick scenes from a list instead of typing their name manually
* Updated GameSceneEditor class
* Added new obstacle mate...
* 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...
When we wanted to click to select spawn location while not in play mode the gizmos was laggy. I added to repaint on mouse move event to always paint the exact location.
Removed ComponentPoolSO
Modified FactorySO to be fully abstract
Removed IPoolable
Modified PoolSO and ComponentPoolSO to not constrain to IPoolable
Modified Example to use unwrapped ParticleSystem component
* 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...
* Add Dialogue Track base implementation
* Custom timeline track and clip for dialog
- Can at any time call for a line of dialogue.
- Each clip binds line of dialogue to be later displayed on screen.
- Depending on the options of this clip, the Timeline might pause.
* Made adjustments based on HyagoOliveiran's suggestions
Tried to add more variables to increase legibility.
Added UpdateSlide function.
Deleted some empty lines.
* Update Character.cs
* Update Character.cs
* Update Character.cs
* Update Character.cs
* Update Character.cs
* Update Character.cs
* Update UOP1_Project/Assets/Scripts/Characters/Character.cs
I deleted unnecessary spacing by following atb-brown suggestion.
Co-authored-by: Austin Brown <atb.austin@gmail.com>
* Deleted unnecessary spacing
* Fixed bouncing issue when player hit under floating platform
* My take on a simple Player Spawn System
* Renamed SetRequestS...
Removed space from asset filename
Move LocalPoolTester from Assets to the Example folder
Renamed ComponentPool to ComponentPoolSO to match naming convention
* changed input phase check to match best practices
* simple solution
* simple camera mouse movement
- implemented system where right button hold enables mouse to control camera
- added a 'speed' setting to the camera manager to modify rotation speed
- updated .inputactions asset
- to contain a mouse binding for "RotateCamera" action
- added "EnableMouseCameraRotation" action
- added scale vector 2 processors for different rotation devices to
get a similar speed out of each of them
- updated input reader to handle new bindings + action
- updated CameraManager to handle new method of camera manipulation
- found bug with old rotate camera binding (did not work on my gamepad)
deleted old binding, remade it. now works on my setup
* added speed preset to camera system prefab. some code housekeeping / syntax changes
* renamed for clarity
* Better naming for variables
Co-authored-by: Unknown <amel.negra...
* place spawn location with mouse
* commenting tooltip out
* Cleanup
Removed unused code, various renames, fixed usage of the event.Use() function, added AddComponentMenu attribut
Co-authored-by: Ciro Continisio <ciro@unity3d.com>