【发布时间】:2019-06-27 15:23:57
【问题描述】:
我有一个 Health 类,它具有 TakeDamage() 和 Die() 方法。我的 Enemy 类有一个 Health 组件,所以当我的 Enemy 受到伤害时, Health.TakeDamage() 正在执行。我如何去覆盖 Die() 方法以在不同类型的敌人上以不同的方式工作。
【问题讨论】:
-
在你的基类中使方法抽象或虚拟,然后在派生类中你可以覆盖这些方法(抽象方法必须被覆盖,虚拟方法可以被覆盖)。 docs.microsoft.com/en-us/dotnet/csharp/language-reference/…NOT 使用成员隐藏,即不要使用
new关键字来尝试覆盖方法。方法隐藏与方法覆盖有很大不同,所以不要混淆两者。 -
作为关于如何为游戏设计数据模型和逻辑的旁注,这可能值得一读:ericlippert.com/2015/04/27/wizards-and-warriors-part-one
标签: c# unity3d components