大家好,

我正在 Unity 中开发一个风格化的 3D 平台游戏,并且很想在完成了整个设计之前得到一些外部意见,避免掉入不佳的玩家控制器体系。

这个游戏以一名角色为中心,角色使用多个不同“模式”移动,游戏希望让这些模式融入一个共同的技能集中,而不是许多单独的小游戏。

一些我想实现的移动行为包括:
- 普通地面移动
- 跳跃和空中移动
- 蹲下和低矮移动状态
- 快速翻滚和转身类型的移动
- 倾倒击中在地面不同状态
- 不断地转化成为一种球形状态,保留动量并更靠近物理驱动状态
- 转换之间可以轻松链接到其他行为

我想实现的主要是:
- 强大的响应控制
- 有很强的感觉动量
- 转换之间的平滑流畅
- 一种即使技能集合不断成长也能保持良好可维护性的系统

但是我仍然存在疑问,是整个结构。

如果你要设计出一样样的游戏玩家架构,怎么会对其结构有所不同?

例如:
- 我们是否应该在一个层级的状态机中建造所有东西?
- 我们是否应该将“核心”控制和特殊技能隔离出来?
- 如果一种移动类型比其他的更靠近物理驱动,我们是否应该在控制器中和它分离,创建一个单独的系统?
- 我们如何避免把行为转换混乱起来,什么时候每种技能需要知道其他所有技能?

我不寻求什么么一个特定的“正确”的答案,我更加想听听熟练 Unity dev 怎么会考虑控制器结构之前执行。

如果你曾经工作过 3D 平台游戏、角色动作游戏或移动类游戏,或者是任何需要移动控件的项目,真的希望也可以分享你设计结构中的想法和避免哪些陷阱吧。

谢谢。