Düşen Güçlendirmeler
Coddy'nin Unity Oyunu: Tuğla Kırma kursunda ders 13 / 16.
Kırık bir tuğla bazen rakete doğru düşen bir güçlendirme bırakır. Bırakıp bırakmaması bir rastgele seçimdir: Random.value, 0 ile 1 arasında rastgele bir kayan noktalı sayıdır; bu yüzden Random.value < 0.15f koşulu 100 denemede yaklaşık 15 kez doğru olur. Olasılığı bir alanda tutmak, bu değeri ayarlamanı ve bir testte her seferinde bırakması için 1'e ya da hiç bırakmaması için 0'a ayarlamanı sağlar.
Hangi güçlendirmenin düşeceği ikinci bir rastgele seçimdir: prefab dizisinden rastgele bir indeks seçilir. Tamsayılarla kullanılan Random.Range üst sınırı dahil etmez; bu nedenle Random.Range(0, array.Length) dizideki her öğeyi seçebilir. Bir düşmanın ganimeti:
public GameObject[] loot;
public float lootChance = 0.25f;
void DropLoot()
{
if (Random.value >= lootChance) return;
int pick = Random.Range(0, loot.Length);
Instantiate(loot[pick], transform.position, Quaternion.identity);
}Bir güçlendirme, her karede kendisini hareket ettirerek sabit bir hızla düşer ve oyun alanının altına indiğinde kendini yok eder; böylece kaçırılanlar birikmez. Prefab'ında kinematik bir Rigidbody ve bir tetikleyici çarpıştırıcı bulunur; böylece fizik sistemi hareket ettiğini bilir ve rakete ulaştığında bunu algılayabilir.
Görev
ZorPowerUpiçindepublic float fallSpeed = 3fvepublic float bottomY = -9fekle.Update()içinde saniyedefallSpeedbirim aşağı hareket ettir ve y değeribottomYdeğerinin altına düştüğünde güçlendirmeyi yok et.GameManageriçindepublic GameObject[] powerUpsekle (sahne, WidePowerUp ve MultiPowerUp prefab’larını bağlar) vepublic float dropChance = 0.15fekle.BrickBrokeniçinde,dropChanceolasılıkla, tuğlanın bulunduğu yerde rastgele birpowerUpsoluştur.
Şimdilik güçlendirmeler raketin içinden düşer: onları yakalama konusu sıradaki adım.
Play’e bas, biri düşene kadar tuğlaları kır, sonra Check’e bas.
Kendin dene
using UnityEngine;
public class PowerUp : MonoBehaviour
{
// Son bölüm: Kırılan tuğlalardan düşen güçlendirmeler.
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.