Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- public class PlayerController : MonoBehaviour
- {
- public float speed = 5;
- public float jumpForce = 4;
- public bool canJump = true;
- private Animator anim;
- private Rigidbody2D rb2d;
- // Awake wykonuje sie jako pierwsze, sluzy do inicjalizacji
- void Awake()
- {
- anim = GetComponent<Animator>(); // przypisuje zmiennej "anim" komponent Animator
- rb2d = GetComponent<Rigidbody2D>(); // przypisuje zmiennej "rb2d" komponent Rigidbody2D
- }
- // Update wykonuje sie tyle razy na sekunde ile mamy klatek w grze
- void Update()
- {
- if (Input.GetKeyDown(KeyCode.Space) && canJump == true) // Jezeli wcisnieto spacje i zmienna canJump == true
- {
- canJump = false; // ustaw canJump na false
- rb2d.velocity = new Vector2(0, jumpForce); // odwoluje sie do komponentu Rigidbody2D by wykonal skok
- }
- }
- void OnCollisionEnter2D(Collision2D coll) // Funkcja przygotowana przez unity do sprawdzania kolizji z komponentem rigidbody2d i colliderow 2d
- {
- canJump = true;
- }
- // FixedUpdate jest uzywany do obliczania fizyki/kolizji w czasie rzeczywistym, prawdopodobnie jest bardziej zasobozerny
- void FixedUpdate()
- {
- float horizontalMove = Input.GetAxisRaw("Horizontal");
- rb2d.AddForce((Vector2.right * speed) * horizontalMove);
- if (rb2d.velocity.x > speed)
- {
- rb2d.velocity = new Vector2(speed, rb2d.velocity.y);
- }
- if (rb2d.velocity.x < -speed)
- {
- rb2d.velocity = new Vector2(-speed, rb2d.velocity.y);
- }
- anim.SetBool("Grounded", canJump);
- anim.SetFloat("Speed", horizontalMove);
- //anim.SetFloat("HorizontalMove", Mathf.Abs(horizontalMove));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement