在大多数FPS游戏中,如Apex Legends、Call of Duty和Battlefield 6,当你射击几发子弹时,任何武器的回弹都会上升,但随后会回归到“零”(基本上是你第一发子弹射出的位置)。为了更准确地射击,你会稍微拉下鼠标来抵消回弹并控制它,即使在抵消之后,回弹也会完美地返回到“零”。有人知道这是如何实现的吗?我尝试过的方法中,我鼠标输入似乎会干扰,所以当我想控制回弹并停止射击时,回弹会下降得远远低于“零”。在Unity3D中使用Cinemachine,我只需要:
- 当射击时,枪会将摄像机/视图向上推动(回弹)。
- 回弹作为玩家(我的)瞄准方向的独立旋转应用,并在时间上缓慢恢复到零。
- 我可以在射击时拉下鼠标来保持枪的瞄准方向,这就是抵消。
在Apex、CoD和Battlefield等游戏中,无论玩家如何拉下鼠标来抵消,停止射击时摄像机总是会返回到第一发子弹射出的位置。我的解决方案是在抵消时删除玩家输入,以便回弹从来不会超过“零”,但这使得鼠标输入变得非常僵硬,需要非常多的输入才能移动鼠标。我不需要编码解决方案,因为有太多了,但实际上,网上没有任何信息超出简单系统。因此,我在Unity3D官方商店购买了一个资产,但它也存在同样的回弹返回“问题”。那么,这些游戏是如何让鼠标在射击时感觉完全自由,而仍然总是返回到第一发子弹射出的位置呢?是否有标准的架构来实现这一点?
评论 (0)