* 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...
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.