Menu
CoddyTech

שלבי המגדל

שיעור 16 מתוך 25 בקורס משחק Unity: הגנת מגדלים של Coddy.

המגדלים ישתדרגו: כל רמה מוסיפה נזק וטווח, וכל שדרוג עולה יותר מקודמו. הרמות פועלות לפי כלל, ולכן הנכס מכיל את הכלל ולא רשימת מספרים, והמתודות ב־ScriptableObject מחשבות את התוצאה, כך שכל סקריפט ששואל מקבל את אותה תשובה. היבול במשחק חווה:

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

רמה 1 היא ערך הבסיס. המגדל שומר רק את ה־level שלו, ויורה עם המספרים של אותה רמה.

challenge icon

אתגר

בינוני

הוסיפו רמות למגדלים.

  1. ב־TowerData, הוסיפו את המספרים השלמים הציבוריים maxLevel, upgradeCost ו־damagePerLevel, ואת המספר העשרוני הציבורי 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++; }; ירו עם DamageAt(level) בתוך RangeAt(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 אונליין