Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- public class PlayerMovement : MonoBehaviour
- {
- private float horizontal;
- private float speed = 8f;
- private float jumpingPower = 16f;
- private bool isFacingRight = true;
- private Collider2D platformCollider;
- [SerializeField] private Rigidbody2D rb;
- [SerializeField] private Transform groundCheck;
- [SerializeField] private LayerMask groundLayer;
- void Update()
- {
- horizontal = Input.GetAxisRaw("Horizontal");
- if (Input.GetButtonDown("Jump") && IsGrounded())
- {
- rb.velocity = new Vector2(rb.velocity.x, jumpingPower);
- }
- if (Input.GetButtonUp("Jump") && rb.velocity.y > 0f)
- {
- rb.velocity = new Vector2(rb.velocity.x, rb.velocity.y * 0.5f);
- }
- Flip();
- }
- private void FixedUpdate()
- {
- rb.velocity = new Vector2(horizontal * speed, rb.velocity.y);
- }
- private bool IsGrounded()
- {
- return Physics2D.OverlapCircle(groundCheck.position, 0.2f, groundLayer);
- }
- private void Flip()
- {
- if (isFacingRight && horizontal < 0f || !isFacingRight && horizontal > 0f)
- {
- isFacingRight = !isFacingRight;
- Vector3 localScale = transform.localScale;
- localScale.x *= -1f;
- transform.localScale = localScale;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment