UE4 三种旋转 (一)
FRotator
FRotator(Pitch,Yaw,Roll)
三个参数分别为:
Pitch
:俯仰角,即绕Y
轴旋转;
Yaw
:偏角,即绕Z
轴旋转;
Roll
:滚角,即绕X
轴旋转。
//绕`z`轴旋转10度
FRotator rotator(0, 10, 0);
AActorT->SetActorRotation(rotator);
FQuat
FQuat(FVector Axis, float AngleRad)
//绕z轴旋转45度
FQuat quat = FQuat(FVector(0, 0, 1),PI / 4.f);
GetOwner()->SetActorRotation(quat);
FMatrix
旋转并面向targer
。
FVector toFollow = target->GetActorLocation() - GetOwner()->GetActorLocation();
FMatrix rotationMatrix = FRotationMatrix::MakeFromXZ(toFollow, GetOwner()->GetActorUpVector());
GetOwner()->SetActorRotation(rotationMatrix.Rotator());
旋转矩阵
根据任意两个方向向量构造旋转.
FRotator rotation = FRotationMatrix::MakeFromXZ(dir, up).Rotator();
FRotator rotation = FRotationMatrix::MakeFromXY(dir, right).Rotator();
FRotator rotation = FRotationMatrix::MakeFromYZ(right,up).Rotator();