# 【Unreal坐标系】
# 左右手与朝向
左手系
Z↑
# 轴与方向
Unreal的设计基于第一人称视觉:
X轴正方向表示向前
Y轴正方向表示向右
Z轴正方向表示向上
# Roll Pithch Yaw
左手握X轴->Roll
左手握Y轴->Pithch
左手握Z轴->Yaw
# Rotator
在UE5中,Rotator表示欧拉角(Euler Angle),用于描述对象的旋转。Rotator包含Pitch、Yaw和Roll三个值,分别对应X、Y和Z轴的旋转。
以下是使用盘旋值Yaw获取向前方向的Vector示例:
void ABlasterCharacter::MoveForward(float Value)
{
if(Controller != nullptr && Value != 0.f)
{
// 获取控制器的盘旋值
const FRotator YawRotation(0.f, Controller->GetControlRotation().Yaw, 0.f);
// 获取盘旋值对应的X方向(前)转为方向
const FVector Direction(FRotationMatrix(YawRotation).GetUnitAxis(EAxis::X));
// 给角色进行移动
AddMovementInput(Direction, Value);
}
}
下面是根据角色速度获取 Rotation(单位度,值范围-180~180)值的示例:
#include "Kismet/KismetMathLibrary.h"
FRotator MovementRotation = UKismetMathLibrary::MakeRotFromX(BlasterCharacter->GetVelocity());
UE_LOG(LogTemp,Warning,TEXT("MovementRotation Yaw %f:"), MovementRotation.Yaw);
【常见问题】 →