Menu
CoddyTech

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.

challenge icon

Görev

Orta

Kulelere seviyeler ekle.

  1. TowerData içinde, maxLevel, upgradeCost ve damagePerLevel public int alanlarını ve rangePerLevel public float alanını ekle.
  2. DamageAt(int level) ekle: damage + damagePerLevel * (level - 1); RangeAt için de aynısını yap; UpgradeCost(int level): upgradeCost * level.
  3. Tower içinde private int level = 1;, public int Level => level; ve public void Upgrade() { level++; } ekle; RangeAt(level) içinde DamageAt(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