Unity 游戏和应用程序开发:用于播放器原型的一个原始的 Space Fighter 模型

173 阅读2分钟

我创建了一个原始的太空战斗机模型,我将用它来做玩家原型,并给它一个简单的引擎效果和一个粒子系统。此外,我开始调整玩家的移动方法,允许玩家在满足特定的输入条件时向某个方向倾斜。

目标。

在移动过程中,将一个变形体从一边平滑地倾斜到另一边,与用户的输入相对应。

解决方案。

你也可以通过使用Animation来实现所需的效果,但在这种情况下,我决定通过使用Quaternion.Slerp来改变运动行为,将其添加到我们的播放器脚本中。

逻辑。

让我们快速浏览一下Quaternion.Slerp 的声明,以及我们如何使用它来平稳地从a 点插值到 b点

一个四元数在四元数a和b之间进行球形插值。

在我们的案例中,我们想在检测到水平运动输入时更新玩家的变换旋转。在玩家运动方法中,我们这样应用它。

当前旋转,朝向旋转,平滑时间

所以我们必须定义一个我们想要旋转的目标旋转。比方说,播放器处于默认位置。

添加一个私有成员变量,负责变换的最大倾斜角度。

然后添加一个局部变量,允许我们通过从Y轴上减去目标旋转来修改它。

Mathf.Round返回四舍五入到最近的整数的浮点数f。

现在我们根据用户的输入平滑地插值到新的旋转。

这里是对当前玩家运动方法的概述。


更新玩家运动》最初发表在《Nerd For Tech》杂志上,人们通过强调和回应这个故事来继续对话。