First Person All-In-One
Documentation

The purpose of this document is to provide information on the main asset's attributes.

Basic Input: W,A,S,D to move. 'Shift' key to sprint.

Note: 
The hierarchy of the player object must be in this order:
Player and Script>Headjoint>Camera

Property Name	Type	Function	
Enable Camera Movement	Bool	Determines whether the player can move camera or not.	
Camera Input Method	Enum	Determines the method used to rotate camera. 
Traditional uses the mouse on all axes. 
Traditional with constraints uses the mouse on the Y axis only. 
Retro uses Keybinds (left and right movement keys) to rotate the camera along the Y axis.	
Vertical Rotation Range	Float	Determines how much range does the camera have to move vertically.	
Mouse Sensitivity	Float	Determines how sensitive the mouse is.	
FOV to Mouse Sensitivity	Float	Determines how much the camera's Field Of View will effect the mouse sensitivity.	
Camera Smoothing	Float	Determines how smooth the camera movement is.	
Player Camera	Camera Object	Camera attached to this controller	
Enable Camera Shake?	Bool	Allow a Camera shake event to called? Call this Coroutine externally with duration ranging from 0.01 to 1, and a magnitude of 0.01 to 0.5.	
Lock and Hide Cursor	Bool	For debuging or if You don't plan on having a pause menu or quit button.	
Auto Crosshair	Bool	Determines if a basic crosshair will be generated.	
Crosshair	Sprite	Sprite to use as a crosshair.	
Enable Player Movement	Bool	Determines if the player is allowed to move.	
Walk By Default	Bool	Determines if the default mode of movement is 'Walk' or 'Srpint'.	
Walk Speed	Float	Determines how fast the player walks.	
Sprint Speed	Float	Determines how fast the player sprints.	
Can Player Jump?	Bool	Determines if the player is allowed to jump.	
Jump Power	Float	Determines how high the player can jump.	
Hold Jump	Bool	Determines if the jump button needs to be pressed down to jump, or if the player can hold the jump button to automaticly jump every time the it hits the ground.	
Enable Crouch	Bool	Determines if the player is allowed to crouch.	
Crouch Key	Keycode Dropdown	Determines what key needs to be pressed to crouch	
Crouch Movement Speed Multiplier	Float	Determines how fast the player can move while crouching.	
Crouching Jump Power Mult.	Float	Determines how much the player's jumping power is increased or reduced while crouching.	
Force Crouch Override	Bool	A Toggle that will override the crouch key to force player to crouch.	
Enable FOV Kick	Bool	Determines if the camera's Field of View will kick when entering a sprint.	
Kick Amount	Float	Determines how much the camera's FOV will kick upon entering a sprint.	
Kick Time	Float	Determines the duration of the FOV kick	
Kick Curve	Animation Curve	N/A	
Enable Stamina	Bool	Determines if spriting will be limited by stamina.	
Stamina Level	Float	Determines how much stamina the player has. if left 0, stamina will not be used.	
Stamina Depletion Speed	Float	Determines how quickly the player's stamina depletes.	
Draw Stamina Meter	Bool	Determines if a basic stamina meter will be generated.	
Gravity Multiplier	Float	Determines how much the physics engine's gravitational force is multiplied.	
Max Slope Angle	Float	Determines the maximum angle the player can walk up. If left 0, the slope detection/limiting system will not be used.	
Max Step Height	Float	EXPERIMENTAL! Determines if a small ledge is a stair by comparing it to this value. Values over 0.5 produces odd results	
Enable Headbobbing	Bool	Determines if headbobbing will be used.	
Head Transform	Transform	A transform representing the head. The camera should be a child to this transform.	
Headbob Frequency	Float	Determines how fast the headbobbing cycle is.	
Tilt Angle	Float	Determines the angle the head will tilt.	
Headbob Hight	Float	Determines the highest point the head will reach in the headbob cycle.	
Enable Jump/Land Movement	Bool	Determines if the headbob system will react to jumping or landing.	
Jump Angle	Float	Determines the angle the head will rotate to when player jumps.	
Land Angle	Float	Determines the angle the head will rotate to when player lands.	
Volume	Float	Volume to play audio at.	
Footstep Mode	Enum Dropdown	Determines the method used to trigger footsetps.	
Material Mode	Enum Dropdown	Determines the type of material will trigger footstep audio.	
*Wood Physic Material	Physic Material Array	Determines what Physic Material(s) will trigger this set of clips	
Wood Material	Material Array	Determines what Material(s) will trigger this set of clips	
*Wood Clips	Audio Clip Array	Audio clips available as footsteps when walking on a collider with the Physic Material assigned to *'Wood Physic Material'	
Footstep Clips	Audio Clip Array	Audio clips available as footstep sounds.	
Jump Clip	Audio Clip	An audio clip that will play when jumping.	
Land Clip	Audio Clip	An audio clip that will play when landing.	

*Wood is one of 8 Dynamic footstep sets

Internal Functions                                                                           

CameraShake (IEnumerator):
	For a cinematic camera shake effect, Call this as a co-routine from a something like a 	GameManager or LevelManager script. 
	
	Overloads:
		Duration (Float): How long in seconds, will the camera shake event last.
		Magnitude (Float): How much the camera will shake.

RotateCamera (Void):
	Use this function to rotate the camera. This keeps the camera from snapping back to 	its original position - a side effect of rotating the camera directly.

	Overloads:
		Rotation (Vector3): The rotation in EulerAngles you wish to apply to the 				camera.