第一人称视角获得运动方向和视角的夹角

时间:2024-03-15 14:57:48

1. GetVelocity获得速度的vector

2. 使用RotationFromXVector和速度的vector得到世界坐标系里速度向量和世界坐标系X轴的夹角

    虽然,RotationFromXVector返回的是一个rotation,但实际上只有Yaw值有效,因为Yaw(围绕Z轴的偏转角)

     即为速度vector和X轴的夹角。

3. GetActorRotation或者GetWorldRotation获得世界坐标系里,角色的pitch,yaw,roll的角度值,

    实际我们只关心yaw。

4. 将上面获得的角度值使用InvertRotator反转一下,也就是如果上面的yaw是90度,反转后为-90度。

5. 将RotationFromXVectorInvertRotator得到的rotatotion使用CombineRotators组合后即可得到角色坐标系里

    速度vector和X轴的夹角即yaw的度数。

总结:

    实际就是如果GetActorRotation获得的是90度夹角,那么RotationFromXVector就得减去90度,这样就能获得

角色标系里的夹角了。这也就是InvertRotator的作用。也就是说,使用速度到世界坐标X轴夹角的角度加上

角色坐标系X轴和世界坐标系X轴的夹角乘上负一,就可以得到速度在角色坐标的X轴夹角。因为速度到世界

坐标X轴夹角的角度实际上是速度在角色坐标系X轴的角度和角色坐标系X轴与世界坐标X轴角度的和。

第一人称视角获得运动方向和视角的夹角