The package contains several scenes which demonstrate each of its features.
![](movement.gif)
01 Movement
This scene introduces the player's movement controls and mechanics.
All player input is handled by the Player Brain which communicates the desired actions to various other components.
Input | Action | Implementation |
---|---|---|
A/D or Arrows | Move Left/Right | Physics is handled by Ground Character Movement and animations by Locomotion State. |
Hold Shift | Run | Part of the same scripts as above. |
Move on stairs | Stairs | Snapping up and down stairs is handled by the Character Body component. |
Tap Space | Jump | Jump State |
Hold Space | Jump Higher | Hold Jump State |
Jump in air | Air Jump | Air Jump State |
Move into wall | Wall Slide | Wall Slide State |
Jump off wall | Wall Jump | Wall Jump State |
![](attacks.gif)
02 Attacks
This scene introduces the combat system with melee and ranged attacks, destructible blocks, and enemies.
Input | Action | Implementation |
---|---|---|
Left Click | Melee Attack | Advanced Attack State |
W + Left Click | Melee Attack Upwards | Advanced Attack State |
Left Click Repeatedly | Melee Combo Attack | Advanced Attack State |
Right Click | Throw Attack | Basic Action State using a Ranged Attack Transition. |
Jump + Attack | Melee Air Attack | Advanced Attack State |
Feature | Implementation |
---|---|
Destructible Block | The Hit system manages the damage and the Destructible component receives it. |
Enemy AI | Behaviour Tree Brains |
Enemy Attacks | Basic Action State using an Attack Transition. |
![](teams.gif)
03 Teams
This scene introduces the Team system which allows the Player and Gobbler enemy to be hostile to everything else while the other enemy types don't harm each other.
![](platforms.gif)
04 Platforms
This system introduces the simple Moving Platform system, spikes, and slippery Ice platforms.
![](zero.png)
Spikes use a PassiveHitCollider
component to Hit anything touching them.
Ice is implemented by giving the platform's Collider2D
component a PhysicsMaterial2D
with the Friction
set to 0
(the same one used by characters). The friction is then taken into account by the Ground Character Movement component.