我在 Unity 中玩转模块化角色控制器,准备为未来的游戏项目做准备。目前,胶囊是角色艺术, 所以这是程序员版本的视频👀。 我决定跳过 CharacterController 和物理驱动 Rigidbody,自己编写一个运动学电机。它处理运动、着地、碰撞检测和解决,以及我自愿为自己创造的其他有趣的碰撞相关问题。 输入完全独立于电机。同样的角色可以由玩家、机器人、回放或我稍后决定的任何其他东西控制。 运动特性是独立的模块:跑步、跳跃、俯卧、闪避、滑行、滑翔等。 我最终添加了一个小的优先级系统,以免它们都争夺同样的输入。 我基本上可以将所有内容都删除,直到它只是一个静止的胶囊,然后只添加闪避模块,让闪避成为它唯一的移动方式。 或者,我可以在不重写电机的情况下构建一个完全不同的控制器。 我也花了太多时间在小的运动细节上。 跳跃有一个短暂的宽限期,用于从ledge下走出的情况,类似于 Fall Guys,移动和旋转平台,球形和环形世界的自定义重力,物理对象的交互, 可配置的冲击反应。 还有很多奇怪的碰撞案例需要找到,但现在终于开始感觉像一个坚实的基础,适合未来的项目。