Advertisement
Guest User

123dsa

a guest
Feb 12th, 2021
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. public class PlayerController : MonoBehaviour
  2. {
  3. private enum PlayerState
  4. {
  5. Ground,
  6. Jump
  7. }
  8.  
  9. [SerializeField] private float Speed = 500f;
  10. [SerializeField] private float JumpForce = 500f;
  11.  
  12. private SpriteRenderer spriteRenderer;
  13. private Rigidbody2D rb;
  14. private Animator animator;
  15.  
  16.  
  17. private PlayerState сurrentState;
  18. private Vector2 input;
  19. private Vector2 prevInput;
  20.  
  21. private void Start()
  22. {
  23. rb = GetComponent<Rigidbody2D>();
  24. animator = GetComponent<Animator>();
  25. spriteRenderer = GetComponent<SpriteRenderer>();
  26. }
  27. private void SetState(PlayerState newState)
  28. {
  29. if (Equals(newState, сurrentState))
  30. return;
  31. сurrentState = newState;
  32. switch (сurrentState)
  33. {
  34. case PlayerState.Ground:
  35. break;
  36. case PlayerState.Jump:
  37. rb.AddForce(Vector2.up * JumpForce);
  38. break;
  39. }
  40. }
  41. private void Update()
  42. {
  43. input = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
  44. if(Input.GetButton("Horizontal"))
  45. spriteRenderer.flipX = input.x < 0;
  46.  
  47. animator.SetFloat("speedX", Mathf.Abs(input.x));
  48. animator.SetBool("jump", сurrentState == PlayerState.Jump);
  49. if (Input.GetKeyDown(KeyCode.Space) && сurrentState == PlayerState.Ground)
  50. {
  51. SetState(PlayerState.Jump);
  52. }
  53. }
  54. private void FixedUpdate()
  55. {
  56. var vel = rb.velocity;
  57. vel.x = input.x * Time.fixedDeltaTime * Speed;
  58. rb.velocity = vel;
  59. }
  60. private void OnCollisionEnter2D(Collision2D other)
  61. {
  62. if (other.gameObject.CompareTag("Ground"))
  63. {
  64. SetState(PlayerState.Ground);
  65. }
  66. }
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement