Kule Seviyeleri
Coddy'nin Unity Oyunu: Kule Savunması kursunda ders 16 / 25.
Kuleler geliştirilecek: her seviye hasarı ve menzili artırır ve her geliştirme bir öncekinden daha pahalıdır. Seviyeler bir kurala göre ilerler; bu nedenle asset bir sayı listesi yerine kuralı tutar ve ScriptableObject üzerindeki yöntemler hesabı yapar, böylece soran her betik aynı yanıtı alır. Bir çiftlik oyunundaki ürün:
public int YieldAt(int level)
{
return baseYield + yieldPerLevel * (level - 1);
}1. seviye temel değerdir. Kule yalnızca kendi level değerini tutar ve o seviyeye ait sayılarla ateş eder.
Görev
OrtaKulelere seviyeler ekle.
TowerDataiçinde,maxLevel,upgradeCostvedamagePerLevelpublic int alanlarını verangePerLevelpublic float alanını ekle.DamageAt(int level)ekle:damage + damagePerLevel * (level - 1);RangeAtiçin de aynısını yap;UpgradeCost(int level):upgradeCost * level.Toweriçindeprivate int level = 1;,public int Level => level;vepublic void Upgrade() { level++; }ekle;RangeAt(level)içindeDamageAt(level)ile ateş et.
“Oyna” düğmesine bas: kuleler önceki gibi savaşır. Ardından “Kontrol et”.
Kendin dene
using UnityEngine;
[CreateAssetMenu(fileName = "NewTower", menuName = "Tower Defense/Tower Data")]
public class TowerData : ScriptableObject
{
public string towerName;
public int cost = 50;
public int damage = 2;
public float range = 4f;
public float fireRate = 1f;
}
Unity Oyunu: Kule Savunması bölümündeki tüm dersler
Kendi başına pratik yap: Unity playground