我正在尝试将 C# 实现为我的游戏引擎的脚本语言。一切工作正常,我的设计中只出现了一个主要问题。
我有 BaseEntity 类。另一个类 BossEntity 派生自 BaseEntity。然后我希望能够通过脚本创建一个新实体。因此,我在脚本中创建一个类(假设为 Boss1),它派生自 BossEntity。
BaseEntity 有一个虚拟的 Update 方法。BossEntity 覆盖它并调用 base.Update()。设计上一切都很好。
但现在我的问题来了。在我的脚本中,我还希望能够覆盖更新方法。所以我继续并再次覆盖它。一切都按预期进行,BossEntity 覆盖丢失,因为我现在再次覆盖 BaseEntity 更新。
但为了简单起见,我不想调用我的脚本 base.Update() 来获得与 BossEntity 中相同的行为。这是一件可以被忘记的事情,对于我来说,就像脚本语言的糟糕设计一样。
在我看来,编写脚本时您只是添加功能而不是删除某些功能。
所以我的一般问题是,有没有什么方法可以完成对 base.Update() 的调用,甚至无需在我的脚本中额外调用它?
我认为不会,或者可能只是用了一个技巧,但你永远不知道。