feat(PlayerMovement): Enhance input action handling for backward compatibility

This commit is contained in:
Thibault Pouch
2026-03-06 18:15:14 +01:00
parent d7dae868a9
commit 1402e4c7b8

View File

@@ -20,7 +20,7 @@ public class PlayerMovement : MonoBehaviour
[Header("Camera/Head")] [Header("Camera/Head")]
public Transform CameraTransform; public Transform CameraTransform;
public float MaxLookAngle = 90f; public float MaxLookAngle = 90f;
private float m_verticalRotation = 0f; private float m_verticalRotation = 0f;
public float WalkSpeed = 10; public float WalkSpeed = 10;
@@ -50,8 +50,9 @@ public class PlayerMovement : MonoBehaviour
m_moveAction = map.FindAction("Move"); m_moveAction = map.FindAction("Move");
m_lookAction = map.FindAction("Look"); m_lookAction = map.FindAction("Look");
m_jumpAction = map.FindAction("Jump"); m_jumpAction = map.FindAction("Jump");
m_throwAction = map.FindAction("Throw"); // Support both old and new action names without breaking the scene setup.
m_pickupAction = map.FindAction("Pickup"); m_throwAction = map.FindAction("Throw") ?? map.FindAction("Attack");
m_pickupAction = map.FindAction("Pickup") ?? map.FindAction("Interact");
m_rigidbody = GetComponent<Rigidbody>(); m_rigidbody = GetComponent<Rigidbody>();
animator = GetComponent<Animator>(); animator = GetComponent<Animator>();
@@ -73,23 +74,23 @@ public class PlayerMovement : MonoBehaviour
m_headInitialLocalPos = Head.localPosition; m_headInitialLocalPos = Head.localPosition;
m_headInitialLocalRot = Head.localRotation; m_headInitialLocalRot = Head.localRotation;
} }
private void Update() private void Update()
{ {
m_moveAmt = m_moveAction.ReadValue<Vector2>(); m_moveAmt = m_moveAction != null ? m_moveAction.ReadValue<Vector2>() : Vector2.zero;
m_lookAmt = m_lookAction.ReadValue<Vector2>(); m_lookAmt = m_lookAction != null ? m_lookAction.ReadValue<Vector2>() : Vector2.zero;
if (m_jumpAction.WasPressedThisFrame()) if (m_jumpAction != null && m_jumpAction.WasPressedThisFrame())
{ {
Jump(); Jump();
} }
if (m_throwAction.WasPressedThisFrame()) if (m_throwAction != null && m_throwAction.WasPressedThisFrame())
{ {
ThrowHead(); ThrowHead();
} }
if (m_pickupAction.WasPressedThisFrame()) if (m_pickupAction != null && (m_pickupAction.WasPressedThisFrame() || m_pickupAction.WasPerformedThisFrame()))
{ {
TryPickupHead(); TryPickupHead();
} }
@@ -141,7 +142,7 @@ public class PlayerMovement : MonoBehaviour
// HEAD ROTATION ON GROUND // HEAD ROTATION ON GROUND
float headRotation = m_lookAmt.x * RotateSpeed * Time.deltaTime; float headRotation = m_lookAmt.x * RotateSpeed * Time.deltaTime;
Head.Rotate(0, headRotation, 0); Head.Rotate(0, headRotation, 0);
// Add vertical camera rotation when head is on ground // Add vertical camera rotation when head is on ground
if (CameraTransform != null) if (CameraTransform != null)
{ {
@@ -165,7 +166,7 @@ public class PlayerMovement : MonoBehaviour
return; return;
animator.SetTrigger("Throw"); animator.SetTrigger("Throw");
m_isHeadThrown = true; m_isHeadThrown = true;
Head.SetParent(null); Head.SetParent(null);