1.按照之前一样首先新建一个C++类,然后构建一个Character蓝图。
character蓝图自带碰撞胶囊组件和骨骼组件,用代码新建弹簧臂和相机。最后如下图。
Arrow是自带的组件指向角色正前方。
2.和前面编写鸟的移动代码类似编写好移动的代码。
3.注意的是我们需要禁止角色跟着控制器一起移动。一般第三人称游戏都是相机动人不动移动鼠标时。
我们需要让弹簧臂随着控制器移动,设置UsePawnControlRotation让弹簧臂跟着控制器一起移动
4.设置左右移动。
需要注意向右为正值。
5.下一步为了让人物是朝我们摄像头的的方向前进。
首先由于人物actor只有前向向量,还有旋转角度,我们需要通过这个计算出现在的正面向量是哪里然后让角色朝这个方向前进。
首先引入向量旋转需要的旋转矩阵概念。
代码实现
FRotationMartix存有原本x y z轴信息。
左右移动类似EAxis::X改为EAxis::Y即可,一般X代表前向向量,Y代表右向向量。
6.设置人物会朝着移动方向转向。
在movement组件中设置orientRotationtoMovement,上面可以设置转向的速度。
代码实现,需要注意在界面中时xyz,实际上FRotator需要的是pitch yar roll 也就是yzx。