StarterAssetsInputs.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using UnityEngine;
  2. #if ENABLE_INPUT_SYSTEM
  3. using UnityEngine.InputSystem;
  4. #endif
  5. namespace StarterAssets
  6. {
  7. public class StarterAssetsInputs : MonoBehaviour
  8. {
  9. [Header("Character Input Values")]
  10. public Vector2 move;
  11. public Vector2 look;
  12. public bool jump;
  13. public bool sprint;
  14. [Header("Movement Settings")]
  15. public bool analogMovement;
  16. [Header("Mouse Cursor Settings")]
  17. public bool cursorLocked = true;
  18. public bool cursorInputForLook = true;
  19. #if ENABLE_INPUT_SYSTEM
  20. public void OnMove(InputValue value)
  21. {
  22. MoveInput(value.Get<Vector2>());
  23. }
  24. public void OnLook(InputValue value)
  25. {
  26. if(cursorInputForLook)
  27. {
  28. LookInput(value.Get<Vector2>());
  29. }
  30. }
  31. public void OnJump(InputValue value)
  32. {
  33. JumpInput(value.isPressed);
  34. }
  35. public void OnSprint(InputValue value)
  36. {
  37. SprintInput(value.isPressed);
  38. }
  39. #endif
  40. public void MoveInput(Vector2 newMoveDirection)
  41. {
  42. move = newMoveDirection;
  43. }
  44. public void LookInput(Vector2 newLookDirection)
  45. {
  46. look = newLookDirection;
  47. }
  48. public void JumpInput(bool newJumpState)
  49. {
  50. jump = newJumpState;
  51. }
  52. public void SprintInput(bool newSprintState)
  53. {
  54. sprint = newSprintState;
  55. }
  56. private void OnApplicationFocus(bool hasFocus)
  57. {
  58. SetCursorState(cursorLocked);
  59. }
  60. private void SetCursorState(bool newState)
  61. {
  62. Cursor.lockState = newState ? CursorLockMode.Locked : CursorLockMode.None;
  63. }
  64. }
  65. }