Dayanıklı Tuğlalar
Coddy'nin Unity Oyunu: Tuğla Kırma kursunda ders 7 / 19.
Bazı tuğlalar birden fazla darbe alır. Her tuğla, kalan darbe sayısını tutar: bir darbe bu sayıyı bir azaltır ve yalnızca sayıyı 0'a indiren darbe tuğlayı kırar ve puan kazandırır. O zamana kadar tuğlanın rengi değişir, böylece oyuncu tuğlanın hâlâ ne kadar dayanıklı olduğunu görebilir.
Inspector'da doldurulan bir renk dizisi, sayıyı bir renkle eşleştirir. 0. öğe, bir darbe kalmışken kullanılacak renktir; 1. öğe iki darbe için kullanılır, dolayısıyla n sayısına karşılık gelen renk, n - 1 öğesidir. Yükleri olan bir kalkan da aynı şekilde çalışır:
public Color[] chargeColors; // eleman 0: 1 şarj kaldı
void ShowCharges(int charges)
{
GetComponent<Renderer>().material.color = chargeColors[charges - 1];
}material okumak, bu renderer'a malzemenin ilk seferinde kendine ait bir kopyasını verir; böylece bir kalkanın veya tuğlanın rengi, prefab'ın her kopyasını yeniden boyamadan değişir. GameManager, her yeni tuğlanın ne kadar dayanıklı olacağına karar verir: her satır için bir sayı içeren, en üst satırdan başlayan bir int[], en üst satırın diğerlerinden daha fazla darbe almasını sağlar.
Görev
OrtaÜst sıradaki tuğlalar iki darbede kırılır.
Brickiçindepublic int hits = 1;,public Color[] colors;(sahnede mavi, turuncu, kırmızı olarak ayarlanır) veSetHits(int count)ekle: hits değerini vecolors[hits - 1]rengini ayarla.Hit(), hits değerini bir azaltır: 0 olduğunda tuğla kırılır ve puan kazandırır; aksi hâlde yeni rengi gösterir.GameManageriçindepublic int[] rowHits = { 2, 1, 1, 1, 1 };ekle ve her yeni tuğladabrick.SetHits(rowHits[row])çağrısını yap.
“Oyna” düğmesine bas: üst sıra turuncu olur ve vurulduğunda maviye döner. Ardından “Kontrol et” düğmesine bas.
Kendin dene
using UnityEngine;
public class Brick : MonoBehaviour
{
public int points = 10;
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Ball")) Hit();
}
public void Hit()
{
GameManager.Instance.BrickBroken(this);
Destroy(gameObject);
}
}
Unity Oyunu: Tuğla Kırma bölümündeki tüm dersler
Kendi başına pratik yap: Unity playground