Flexible 2D Platformer Controller - Unity
Greetings
Free and Flexible 2D Character Controller for Unity
This character controller is designed to simplify and accelerate the development of any 2D platformers. It is completely free and configurable through the inspector, without script editing. It features an extensive amount of capabilities, functions and their settings.
I would be happy if this controller proves useful for implementing your ideas.
Good luck with further development!
Controls
Message to users, developers, game designers, artists
- If you found a bug or you're missing functionality, please write in the appropriate section, I'll fix everything.
- I want to address experienced developers, game designers and artists, please look at "future updates" below, if you have the desire and opportunity to help with one of the points, you can write in the corresponding section, I appreciate it!
- It would also be very nice to receive feedback on the code and project architecture from experienced developers. I will take criticism into account and will be able to improve in this direction.
Features
Walk
WalkSpeed |
Character speed while walking |
WalkAcceleration | Acceleration of the character while walking |
WalkDeceleration | Slowing down the character while walking |
WalkAirAcceleration | Acceleration of the character in the air from walking |
WalkAirDeceleration | Slowing down a character in the air from walking |
Run
RunSpeed | Character speed while running |
RunAcceleration | Acceleration of the character while running |
RunDeceleration | Slowing down the character while running |
RunAirAcceleration | Acceleration of the character in the air from running |
RunAirDeceleration | Slowing down a character in the air from running |
Jump
MaxJumpHeight | Maximum jump height |
MinJumpHeight | Minimum jump height |
TimeTillJumpApex | Time to jump peak |
JumpHeightCompensationFactor | Jump height compensation factor |
JumpGravityMultiplayer | Gravity during jump (upward flight) |
FallGravityMultiplayer | Gravity during fall (downward flight) |
Variable Jump
Multi Jump
MaxNumberJumps | Maximum number of jumps |
Buffer Jump
BufferTime | Timer for buffer jump (works for WallJump) |
Coyote Jump
CoyoteTime | Timer for coyote jump |
Dash
DashVelocity | Dash force |
MaxNumberDash | Maximum number of dashes |
DashTime | Timer for dash |
DashFallSpeed | Speed during fall after dash |
DashFallAirAcceleration | Air acceleration after dash |
DashFallAirDeceleration | Air deceleration after dash |
Crouch
CrouchMoveSpeed | Movement speed while crouching |
CrouchAcceleration | Character acceleration while crouching |
CrouchDeceleration | Character deceleration while crouching |
CrouchRoll
CrouchRollVelocity | Crouch roll force |
CrouchRollTime | Timer for crouch roll |
WallSlide
StartVelocityWallSlide | Initial sliding velocity |
WallSlideSpeedMax | Maximum allowed sliding speed |
WallSlideDeceleration | Deceleration while sliding |
WallFallTime | Time to detach from wall sideways (detach, not jump) |
WallJump (In three directions)
WallJumpClimb (X, Y) | Jump towards the wall |
WallJumpOff (X, Y) | Jump off the wall (simple jump button on wall) |
WallLeap (X, Y) | Jump to the opposite side of the wall |
WallJumpTime | Time for input command after pressing jump button on wall |
WallFallSpeed | Speed during fall after wall jump |
WallFallAirAcceleration | Acceleration during fall after wall jump |
WallFallAirDeceleration | Deceleration during fall after wall jump |
StateMachine
All states in the state machine are shown below. I'd like to note that AirAcceleration, AirDeceleration, RunAirAcceleration and so on relate to states that come after these actions, for example when exiting dash we enter DashFallState (DashFallSpeed, DashFallAirAcceleration, DashFallAirDeceleration), when exiting RunJumpState we enter RunFallState (RunSpeed, RunAirAcceleration, RunAirDeceleration). The same applies to WallJump and Walk. This might seem like redundant functionality, but it still allows you to configure each state individually.
Future Updates
- Additional capabilities for the hero: climb, wall land, push object, pull object, punch, death
- System for creating and saving settings presets
- Levels in the style of different games and presets for them for in-depth demonstration of capabilities
- Level creation tool system
- Platform system
- Camera system
- Improved UI
- Interesting variants of prototype graphics
Additional Information
The project was developed in Unity 6 (6.000.0.38f1)
Information about installation, setup, and project code can be downloaded from GitHub: https://github.com/Vladislav-EG/Platformer2D
It's also worth noting that in the Unity project editor, you will find additional settings such as: collision settings, dash and jump update settings, crouch height and others
Assets
https://zegley.itch.io/2d-platformermetroidvania-asset-pack
https://kenney.nl/assets/prototype-textures
Thank you so much! You did a great job!
Published | 17 hours ago |
Status | In development |
Category | Tool |
Platforms | HTML5, Windows |
Rating | Rated 5.0 out of 5 stars (4 total ratings) |
Author | Ilovevladislav |
Genre | Platformer |
Made with | Unity |
Tags | 2D, Character Customization, Game Design, Unity |
Code license | MIT License |
Average session | A few seconds |
Languages | English |
Inputs | Keyboard, Xbox controller, Playstation controller |
Links | GitHub |
Download
Click download now to get access to the following files: