43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using UnityEngine; | |||
|  | 
 | |||
|  | public class PlayerInputController : MonoBehaviour | |||
|  | { | |||
|  |     public PlayerInput Current; | |||
|  |     public Vector2 RightStickMultiplier = new Vector2(3, -1.5f); | |||
|  | 
 | |||
|  | 	void Start() | |||
|  | 	{ | |||
|  |         Current = new PlayerInput(); | |||
|  | 	} | |||
|  | 
 | |||
|  | 	void Update() | |||
|  | 	{ | |||
|  |         // Retrieve our current WASD or Arrow Key input | |||
|  |         // Using GetAxisRaw removes any kind of gravity or filtering being applied to the input | |||
|  |         // Ensuring that we are getting either -1, 0 or 1 | |||
|  |         Vector3 moveInput = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical")); | |||
|  |         Vector2 mouseInput = new Vector2(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y")); | |||
|  |         Vector2 rightStickInput = new Vector2(Input.GetAxisRaw("AimHorizontal"), Input.GetAxisRaw("AimVertical")); | |||
|  | 
 | |||
|  |         // pass rightStick values in place of mouse when non-zero | |||
|  |         mouseInput.x = rightStickInput.x != 0 ? rightStickInput.x * RightStickMultiplier.x : mouseInput.x; | |||
|  |         mouseInput.y = rightStickInput.y != 0 ? rightStickInput.y * RightStickMultiplier.y : mouseInput.y; | |||
|  | 
 | |||
|  |         bool jumpInput = Input.GetButtonDown("Jump"); | |||
|  | 
 | |||
|  |         Current = new PlayerInput() | |||
|  |         { | |||
|  |             MoveInput = moveInput, | |||
|  |             MouseInput = mouseInput, | |||
|  |             JumpInput = jumpInput | |||
|  |         }; | |||
|  | 	} | |||
|  | } | |||
|  | 
 | |||
|  | public struct PlayerInput | |||
|  | { | |||
|  |     public Vector3 MoveInput; | |||
|  |     public Vector2 MouseInput; | |||
|  |     public bool JumpInput; | |||
|  | } |