防御塔数据
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挑战
中等将每座塔的属性移到一个 TowerData 资源中。
- 在
TowerData.cs中,添加[CreateAssetMenu]和公共字段towerName(字符串)、cost和damage(整数)、range和fireRate(浮点数)。 - 在
Tower中,用public TowerData data;替换这四个字段,并读取data.range、data.damage和data.fireRate。 - 在
BuildManager中,支付towerPrefab.data.cost。
按下“开始”:Arrow 会像之前一样战斗,现在使用的是 ArrowData。然后点击“检查”。
亲手试试
using UnityEngine;
// 后面会用到:将一种防御塔的属性保存为资源。
public class TowerData : ScriptableObject
{
}
Unity 塔防游戏中的所有课
自己练习: Unity 在线编辑器