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;
							 | 
						|||
| 
								 | 
							
								}
							 |