This camera system was developed to be used in a 2.5d game. I wanted the game to have a more advanced camera system than just a default camera, my reasoning for this is that I could create more interesting level sequences with it as well as have the possibility for more interesting camera movement.
The camera system is based on three different camera states that let the camera behave in three different ways.
The three different camera states are camera look ahead, follow player directly, and follow the player with lag.
Camera Location And Rotation
This set the cameras location and rotation offsets as well as the camera FOV and camera length (Distance away from the player)
This continues then to set the lock state that determines if the camera should be locked on any axis.
Camera Lock System
This locks the camera in different axises with it changeable in editor for the developer to change individually.