using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.InputSystem; public class CharacterMovement : MonoBehaviour { [SerializeField] private Rigidbody rb; [Header("Enable switches")] [SerializeField] private bool canWalk; [SerializeField] private bool canJump; [Header("Movement settings")] [SerializeField] private float movementSpeed; [SerializeField] private float jumpPower; [Header("Character properties")] private Vector2 rawInputMovement; private void FixedUpdate() { if (canWalk || canJump) { rb.AddForce(rawInputMovement * movementSpeed, ForceMode.Impulse); } } public void Walk(InputAction.CallbackContext value){ if (canWalk) { Vector2 inputMovement = value.ReadValue(); rawInputMovement = new Vector3(inputMovement.x, 0, inputMovement.y); } } public void Jump(InputAction.CallbackContext value) { if (canJump) { Vector2 inputMovement = value.ReadValue(); rawInputMovement = new Vector3(rawInputMovement.x, jumpPower, rawInputMovement.y); canJump = false; } } }