Menu
CoddyTech

防御塔数据

Coddy Unity 塔防游戏 课程的第 14 课,共 25 课。

第二座塔即将登场,它是加农炮塔,拥有自己的属性数值。和敌人一样,这些属性会放进一个资源 TowerData 中,每种塔对应一个资源:项目中有 ArrowData(花费 50,伤害 2,射程 4.5,fireRate 为 1.5)。预制件负责保存塔的外观,而它的 Tower 脚本会指向对应的资源。

在 ScriptableObject 类上方添加 [CreateAssetMenu],就能将它放进 Unity 的 Create 菜单,这样就可以在编辑器中创建新资源。敌人的资源中就有这个特性:

[CreateAssetMenu(fileName = "NewEnemy", menuName = "Tower Defense/Enemy Data")]
public class EnemyData : ScriptableObject
challenge icon

挑战

中等

将每座塔的属性移到一个 TowerData 资源中。

  1. 在 TowerData.cs 中,添加 [CreateAssetMenu] 和公共字段 towerName(字符串)、cost 和 damage(整数)、range 和 fireRate(浮点数)。
  2. 在 Tower 中,用 public TowerData data; 替换这四个字段,并读取 data.range、data.damage 和 data.fireRate。
  3. 在 BuildManager 中,支付 towerPrefab.data.cost。

按下“开始”:Arrow 会像之前一样战斗,现在使用的是 ArrowData。然后点击“检查”。

亲手试试

using UnityEngine;

// 后面会用到:将一种防御塔的属性保存为资源。
public class TowerData : ScriptableObject
{
}

Unity 塔防游戏中的所有课

自己练习: Unity 在线编辑器