Menu
CoddyTech

Kır

Coddy'nin Unity Oyunu: Tuğla Kırma kursunda ders 6 / 16.

Tuğlaların Rigidbody'si yok, ancak topun var ve Unity bir çarpışmada OnCollisionEnter olayını her iki nesneye de gönderir. Bu nedenle bir tuğla, çarpışmayı kendisi algılayabilir. Tuğlanın betiğinde gameObject tuğlanın kendisidir, collision.gameObject ise ona çarpan nesnedir.

Skor GameManager'a aittir ve tuğlalar bir prefab'ın kopyalarıdır. Prefab, sahnenin dışında bulunan bir varlıktır; bu nedenle alanları Inspector'da sahnedeki GameManager'ı gösteremez. GameManager, Awake() içinde statik GameManager.Instance değerini kendisine ayarlar; böylece prefab kopyaları da dahil olmak üzere her betik ona erişebilir.

Oyuncu çarptığında parçalanan bir vazo:

void OnCollisionEnter(Collision collision)
{
    if (collision.gameObject.CompareTag("Player")) Shatter();
}

public void Shatter()
{
    Destroy(gameObject);
}

Destroy(gameObject) vazoyu kaldırır. Destroy(collision.gameObject) oyuncuyu kaldırırdı, Destroy(this) ise yalnızca betiği kaldırır ve vazoyu yerinde bırakır. Kırma işlemini kendine ait bir public yöntemde tutmak, başka kodların da (bir bomba veya güçlendirme gibi) vazoyu kırabilmesini sağlar.

challenge icon

Görev

Orta
  1. GameManager içinde bir int score ve tuğlanın points değerini score değerine ekleyen bir public void BrickBroken(Brick brick) ekle.
  2. Brick içinde public void Hit() yaz: bu tuğlanın kırıldığını GameManager.Instance'a bildirir, ardından tuğlayı yok eder.
  3. Brick sınıfına OnCollisionEnter ekle: Ball etiketi atanmış nesne ona çarptığında Hit() çağrılır.

Play'e bas, birkaç tuğla kır, ardından Check'e bas.

Kendin dene

using UnityEngine;

public class Brick : MonoBehaviour
{
    public int points = 10;

    // Sıradaki: top bir tuğlayı kırar ve tuğlanın puanını kazanır.
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Unity Oyunu: Tuğla Kırma bölümündeki tüm dersler