use custom input in PlayerController

This commit is contained in:
in0finite 2019-07-22 17:14:21 +02:00
parent 904dcdef93
commit 986a6a3c74

View file

@ -118,30 +118,32 @@ namespace SanAndreasUnity.Behaviours
void ReadStates() void ReadStates()
{ {
CustomInput customInput = CustomInput.Instance;
this.ReadCameraInput (); this.ReadCameraInput ();
m_ped.MouseScrollInput = Input.mouseScrollDelta; m_ped.MouseScrollInput = Input.mouseScrollDelta;
m_ped.IsAimOn = Input.GetButton ("RightClick"); m_ped.IsAimOn = customInput.GetButton ("RightClick");
m_ped.IsFireOn = Input.GetButton ("LeftClick"); m_ped.IsFireOn = customInput.GetButton ("LeftClick");
m_ped.IsJumpOn = Input.GetButton ("Jump"); m_ped.IsJumpOn = customInput.GetButton ("Jump");
Vector3 inputMove = Vector3.zero; Vector3 inputMove = Vector3.zero;
if (m_smoothMovement) if (m_smoothMovement)
inputMove = new Vector3 (Input.GetAxis ("Horizontal"), 0f, Input.GetAxis ("Vertical")); inputMove = new Vector3 (customInput.GetAxis ("Horizontal"), 0f, customInput.GetAxis ("Vertical"));
else else
inputMove = new Vector3 (Input.GetAxisRaw ("Horizontal"), 0f, Input.GetAxisRaw ("Vertical")); inputMove = new Vector3 (customInput.GetAxisRaw ("Horizontal"), 0f, customInput.GetAxisRaw ("Vertical"));
if (inputMove.sqrMagnitude > 0f) if (inputMove.sqrMagnitude > 0f)
{ {
inputMove.Normalize(); inputMove.Normalize();
if (Input.GetButton ("Walk")) if (customInput.GetButton ("Walk"))
m_ped.IsWalkOn = true; m_ped.IsWalkOn = true;
else if (Input.GetButton ("Sprint")) else if (customInput.GetButton ("Sprint"))
m_ped.IsSprintOn = true; m_ped.IsSprintOn = true;
else else
m_ped.IsRunOn = true; m_ped.IsRunOn = true;
@ -163,30 +165,32 @@ namespace SanAndreasUnity.Behaviours
void ReadEvents() void ReadEvents()
{ {
if (Input.GetButtonDown ("LeftClick")) CustomInput customInput = CustomInput.Instance;
if (customInput.GetButtonDown ("LeftClick"))
m_ped.OnFireButtonPressed (); m_ped.OnFireButtonPressed ();
if (Input.GetButtonDown ("RightClick")) if (customInput.GetButtonDown ("RightClick"))
m_ped.OnAimButtonPressed (); m_ped.OnAimButtonPressed ();
if (Input.GetKeyDown (KeyCode.Q)) if (customInput.GetKeyDown (KeyCode.Q))
m_ped.OnPreviousWeaponButtonPressed(); m_ped.OnPreviousWeaponButtonPressed();
else if (Input.GetKeyDown (KeyCode.E)) else if (customInput.GetKeyDown (KeyCode.E))
m_ped.OnNextWeaponButtonPressed(); m_ped.OnNextWeaponButtonPressed();
if (Input.GetButtonDown("Use")) if (customInput.GetButtonDown("Use"))
m_ped.OnSubmitPressed (); m_ped.OnSubmitPressed ();
if (Input.GetButtonDown("Jump")) if (customInput.GetButtonDown("Jump"))
m_ped.OnJumpButtonPressed (); m_ped.OnJumpButtonPressed ();
if (Input.GetKeyDown(KeyCode.C)) if (customInput.GetKeyDown(KeyCode.C))
m_ped.OnCrouchButtonPressed (); m_ped.OnCrouchButtonPressed ();
if (Input.GetKeyDown (KeyCode.T)) if (customInput.GetKeyDown (KeyCode.T))
m_ped.OnFlyButtonPressed(); m_ped.OnFlyButtonPressed();
if (Input.GetKeyDown (KeyCode.R)) if (customInput.GetKeyDown (KeyCode.R))
m_ped.OnFlyThroughButtonPressed(); m_ped.OnFlyThroughButtonPressed();
} }
@ -194,14 +198,16 @@ namespace SanAndreasUnity.Behaviours
private void ReadCameraInput () private void ReadCameraInput ()
{ {
CustomInput customInput = CustomInput.Instance;
if (GameManager.CanPlayerReadInput()) if (GameManager.CanPlayerReadInput())
{ {
// rotate camera // rotate camera
// FIXME: Camera rotation should be done by ped's current state. We should only assign mouse move input. // FIXME: Camera rotation should be done by ped's current state. We should only assign mouse move input.
var mouseDelta = new Vector2(Input.GetAxisRaw("Mouse X"), Input.GetAxisRaw("Mouse Y")); var mouseDelta = new Vector2(customInput.GetAxisRaw("Mouse X"), customInput.GetAxisRaw("Mouse Y"));
var rightAnalogDelta = new Vector2(Input.GetAxisRaw("Joystick X"), Input.GetAxisRaw("Joystick Y")); var rightAnalogDelta = new Vector2(customInput.GetAxisRaw("Joystick X"), customInput.GetAxisRaw("Joystick Y"));
Vector2 totalMouseDelta = mouseDelta + rightAnalogDelta; Vector2 totalMouseDelta = mouseDelta + rightAnalogDelta;