UE5学习--编写一个Character。涉及向量的旋转

1.按照之前一样首先新建一个C++类,然后构建一个Character蓝图。

character蓝图自带碰撞胶囊组件和骨骼组件,用代码新建弹簧臂和相机。最后如下图。

Arrow是自带的组件指向角色正前方。

2.和前面编写鸟的移动代码类似编写好移动的代码。

3.注意的是我们需要禁止角色跟着控制器一起移动。一般第三人称游戏都是相机动人不动移动鼠标时。

 我们需要让弹簧臂随着控制器移动,设置UsePawnControlRotation让弹簧臂跟着控制器一起移动

4.设置左右移动。

需要注意向右为正值。

5.下一步为了让人物是朝我们摄像头的的方向前进。

首先由于人物actor只有前向向量,还有旋转角度,我们需要通过这个计算出现在的正面向量是哪里然后让角色朝这个方向前进。

首先引入向量旋转需要的旋转矩阵概念。

二维坐标系中的向量旋转公式-CSDN博客

坐标系旋转与向量旋转(旋转矩阵)-CSDN博客

代码实现

FRotationMartix存有原本x y z轴信息。

左右移动类似EAxis::X改为EAxis::Y即可,一般X代表前向向量,Y代表右向向量。

6.设置人物会朝着移动方向转向。

在movement组件中设置orientRotationtoMovement,上面可以设置转向的速度。

代码实现,需要注意在界面中时xyz,实际上FRotator需要的是pitch yar roll 也就是yzx。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值