【发布时间】:2013-11-28 08:27:37
【问题描述】:
我正在Unity中创建一个塔防游戏,我遇到了一个问题。
我有 Unit 类,其中我的小怪有 HP、伤害、类型、速度等参数和方法 Hit(int damage)(损坏单位)。我为每种类型的单位都有一个类:战士、游侠、法师等,它继承了 Unit 类
当暴徒进入其触发区域时,塔开始射击。塔没有子弹、导弹或其他任何东西可以射击。问题是,如何从 Tower 的脚本中调用该 Hit 方法?
对于每个单元,我都有一个带有 2 个脚本的预制件:单元,例如,坦克。我想这是不对的,因为因此我有 2 个 Unit 类:一个只是 Unit,一个由例如 Tank 继承。
所以这似乎不对:
if (obj.GetComponent<Unit>()) obj.GetComponent<Unit>().Hit(dmg);
我也觉得这样检查是不对的:
if (obj.GetComponent<Tank>()) obj.GetComponent<Tank>().Hit(dmg);
else if (obj.GetComponent<Warrior>()) obj.GetComponent<Warrior>().Hit(dmg);
else ... etc.
那么,什么是调用 Hit 的正确方式?
【问题讨论】: