- 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
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
Removed the 'override' feature that was implemented as it was adding unnecessary complexity.
Adjusted test scene to reflect the changes:
- Added `ChaseComponent.cs`. It takes `Transform _target`, `float _speed` and has a `public void Chase()` function that moves the gameObject towards the target.
- `ChaseAction` now simply calls `ChaseComponent.Chase()` in its `OnUpdate()`.
- `ChaseComponent` also contains a public getter `Target => _target`.
- `CloseToTargetCondition` gets `transform` from the `StateMachine` and the transform of the target from `ChaseComponent`, the `Statement()` remains the same. Another way to implement it would be to have a public getter `bool IsCloseToTarget` or `float DistanceToTarget` in `ChaseComponent` and evaluate that in the `Statement`.
- Removed `ChaseData.cs`.
- How much each sphear eats is now contro...
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.