Menu
CoddyTech

타워 레벨

Coddy의 Unity 게임: 타워 디펜스 코스 레슨. 25개 중 16번째.

타워가 업그레이드됩니다. 각 레벨마다 공격력과 사거리가 증가하고, 업그레이드 비용은 이전보다 높아집니다. 레벨은 규칙을 따르므로 에셋에는 숫자 목록이 아니라 규칙이 저장되고, ScriptableObject의 메서드가 값을 계산하므로 어떤 스크립트에서 요청하든 같은 결과를 얻습니다. 농사 게임의 작물이라면 다음과 같습니다.

public int YieldAt(int level)
{
    return baseYield + yieldPerLevel * (level - 1);
}

레벨 1은 기본값입니다. 타워는 자신의 level만 유지하고, 해당 레벨의 수치로 공격합니다.

challenge icon

챌린지

중급

포탑에 레벨을 부여하세요.

  1. TowerData에서 public int maxLevel, upgradeCost, damagePerLevel과 public float rangePerLevel을 추가하세요.
  2. DamageAt(int level)을 추가하세요: damage + damagePerLevel * (level - 1). RangeAt도 같은 방식으로 추가하세요. UpgradeCost(int level): upgradeCost * level.
  3. Tower에서 private int level = 1;, public int Level => level;, public void Upgrade() { level++; }을 추가하고, RangeAt(level) 범위 안에서 DamageAt(level)으로 공격하도록 하세요.

‘플레이’를 누르세요. 포탑이 이전처럼 전투합니다. 그런 다음 ‘확인’을 누르세요.

직접 해보기

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 게임: 타워 디펜스의 모든 레슨

직접 연습해 보세요: Unity 플레이그라운드