- handles keyboard + gamepad inputs
- handles mouse inputs
- created component to place on selectable UI elements to register them
as a pointer enter/exit receiver
- updated inputreader to contain menu inputs as well
- updated input actions to contain new menu inputs
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...
* Palm tree wind vertex color layer
Added vertex color to Palm tree mesh
* Added wind sensivity vertex color on nature assets
* Added wind sensivity vertex color on nature assets
Added an Earring for townsfolk. It was build with Probuilder, exported to obj for some finishing touches with Blender, then saved as obj again. The material is a simple color.
The earring possibly needs to be placed somewhere else once the townfolk is rigged. Which begs the question whether they can move their ears...
* Alternative water shader proposition
* Unlit water shader and add shadow
- Unlit water shader
- Add shadow as done in Toon shader
- Add vertex displacement like done in dickmendra shader
- Change the showcase water plane to intersect with the rock close to it to see foam
* Shader clean up
* Water shader improvements
- Water effect distance cut off
- Expose light probe contribution
- Control surface shadow intensity
* Small tweaks to showcase scene
* Water shader fixes
* Showcase water
* Small tweaks
Co-authored-by: Ciro Continisio <ciro@unity3d.com>
* Toon Shader Wind effect addon
New Sub Graph added to simulate wind based on gradient noise (over world coordinates) and applied on Object coordinates depending of the mesh vertex color (Green channel) only.
- Properties: Wind speed, Wind density, Wind strength, Wind direction (around Y axis)
Note: No update on FBX files in this PR to introduce vertex color on the existing assets. It will be done through one/multiple other PRs.
* Toon refactor
Reading back the requirement from Toon Shader add-on, it is preferred (for perf reason) to have a separated unlit shader for Toon shading with wind impact, instead of having wind graph applied to all object even if they are not sensitve to the wind.
Toon shader refactor:
- Extract each part into a separated Sub Shader
-- Shadow part: ToonShadow
-- Specular part: ToonSpecular
- Move current Toon implementation into Sub Graph: ToonColor
- Use ToonColor into Unlit shader Toon...
- Logic is now split into sub components: Genera, Graphics, Audio and Input (currently empty as input system is wip)
- The settings system class can be used to get information from all sub components, a distributor
- Fixed an issue with Screen resolution not being correct when in windowed mode (Screen.currentResolution gives back desktop resolution when in windowed mode)
- Added Input UI elements which are placeholders for now, once the input system is done this can be populated like the other settings sub components
- Implemented General tab - Language setting
- Implemented Graphics tab - Graphics Presets, Resolution (all supported resolutions on users device), fullscreen mode settings
- Implemented Advanced Graphics - Anisotropic filtering, Anti-Aliasing, Shadow Distance, Shadow Quality settings
- Implemented Audio tab - Music Volume, Sfx Volume settings
- Moved SettingsSystem scripts to Scripts/Systems/Settings (if we use asmdef files in the future this hiararchy might be better than throwin every script under the scripts folder)
- Added scriptable object which holds graphics presets
- Updated SettingsSystem script to utilize the presets object