Advertisement
Guest User

Untitled

a guest
Apr 28th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.61 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public class EnemyMovement : MonoBehaviour {
  6.  
  7.     private Rigidbody2D rigbody; // 1) Rigidbody przeciwnika
  8.     public float direction,speed; // 3) Deklaracja zmiennych prędkości i kierunku
  9.     public LayerMask leftSide,rightSide; // 2) Stworzenie mask dla rightSide
  10.     // Use this for initialization
  11.     void Start ()
  12.     {
  13.         rigbody = GetComponent<Rigidbody2D>(); //1) Automatyczne pobranie rigidbody
  14.     }
  15.  
  16.     // 5) Wykrywaj kolizję i zmieniaj kierunek
  17.     void OnCollisionEnter2D(Collision2D other)
  18.     {
  19.         float otherLayer = Mathf.Pow(2,other.gameObject.layer); // sprawdź maskę tego na co spadliśmy
  20.         direction = (transform.localScale.x > 0) ? 1 : -1; // jeżeli localScale jest większe od zera to patrzymy w prawo i ustaw direction na wartość dodatnią
  21.  
  22.         if(otherLayer == leftSide.value) Flip(true); // jeżeli dotykamy warstwy "LEWEJ" to nas odwróć bo patrzymy w prawo
  23.         if(otherLayer == rightSide.value) Flip(false); // jeżeli dotykamy warstwy "PRAWEJ" to nas odwróc bo patrzymy w lewo
  24.     }
  25.     void FixedUpdate()
  26.     {
  27.            rigbody.velocity = new Vector2(speed*Time.deltaTime*direction, rigbody.velocity.y);
  28.     }
  29.  
  30.     // 4) Stworzenie metody flip do obracania postaci
  31.     private void Flip(bool facingRight)
  32.     {
  33.         if((facingRight == true && direction < 0f) || (facingRight == false && direction > 0f)) // Odwórć jeżeli patrzy w prawo, ale idzie w lewo lub odwrotnie
  34.         {
  35.             Vector3 theScale = transform.localScale;
  36.             theScale.x *= -1;
  37.             direction *= -1;
  38.             transform.localScale = theScale;
  39.         }
  40.            
  41.     }
  42.  
  43.  
  44.  
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement