unity3d 在RPG游戏中实现职业和能力的最佳方式是什么?[关闭]

nr9pn0ug  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(64)

已关闭,该问题为opinion-based,目前不接受回答。
**想改进这个问题吗?**更新问题,以便editing this post可以用事实和引用来回答。

8天前关闭
Improve this question
所以我正在Unity中开发一个2D RPG游戏。主要的想法是玩家可以在他们的库存中拥有多个“职业”。我不是在谈论职业对象,而是典型的RPG职业,如战士,盗贼,小偷, Mage 等。玩家应该能够切换到他们想要使用的任何职业,只要他们想使用它。所有的职业都是不同的。他们都有3个被动奖金,和4个能力/法术,法术可以变化很大。也就是说,我一直在努力寻找一种方法来编写这些类及其相应的技能集,这种方法最有意义,并且使用最少的计算机资源(对象类),但很难使用继承,因为游戏中的类有非常不同的奖金和能力。我想我可以有一个类,存储所有的变量,能力有共同的,比如法力使用和冷却时间。但是我怎么能在没有50个不同职业的情况下编程这些技能呢?
有没有人有关于如何构建这个的设计想法,或者我必须为每个游戏中的类创建一个完整的类?

ckocjqey

ckocjqey1#

听起来你只需要一个类:RpgClass。记住:类模型 * 行为 *,而不是 * 数据 *。为什么揽胜需要一个不同的C#类来存储它的属性,而不是法拉利?它们有不同的引擎,不同的轮胎,不同的特性,但这些都不需要继承。
因此,您将拥有一个类RpgClass(或想到更好的东西),它具有像NameSpellsAbilitiesBonuses这样的属性,您可以在运行时使用字符串和对象的不同示例填充这些属性。
然后你将有SpellAbilityBonus类,并再次做同样的事情。只有当它们的 * implementation * 不同时,你才开始子类化。

相关问题