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