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


MaxNumberJumpsMaximum number of jumps


Buffer Jump

BufferTime Timer for buffer jump (works for WallJump)


Coyote Jump


CoyoteTime Timer for coyote jump


Dash


DashVelocityDash force
MaxNumberDashMaximum number of dashes
DashTime Timer for dash
DashFallSpeedSpeed during fall after dash
DashFallAirAccelerationAir acceleration after dash
DashFallAirDecelerationAir 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 GitHubhttps://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
StatusIn development
CategoryTool
PlatformsHTML5, Windows
Rating
Rated 5.0 out of 5 stars
(4 total ratings)
AuthorIlovevladislav
GenrePlatformer
Made withUnity
Tags2D, Character Customization, Game Design, Unity
Code licenseMIT License
Average sessionA few seconds
LanguagesEnglish
InputsKeyboard, Xbox controller, Playstation controller
LinksGitHub

Download

Download NowName your own price

Click download now to get access to the following files:

win_FLEX2DPlatformerController_ver1.0.0.7z 23 MB