#692 Transform(变换)的分量拆开进行   Coordinate System     UE4     vector     经验     11 months ago (owner) Document
将Cube(Xscale=2)放在(220, 0, 0)处,对其进行Transform时,可以通过FTransform来进行,也可以通过Location与Rotation分量来分别进行,记住UE变换的大顺序为Scale->Rotate->Translate。
以下是两组等价的变换的示例:
  • 对Cube->GetActorTransform()叠加FTransform(FVector(0,0,0), FRotator(0,0,-90)),其等价于:
    1. 用FRotator(0,0,-90)作用到Cube->GetActorLocation()上作为新的Actor Location
    2. 在Cube->GetActorRotation()上叠加FRotator(0,0,-90)作为新的Actor Rotation


  • 对Cube->GetActorTransform()叠加FTransform(FVector(220,0,0), FRotator(0,0,-90)),其等价于:
    1. 用FRotator(0,0,-90)作用到Cube->GetActorLocation()上,再加上FVector(220, 0, 0)作为新的Actor Location
    2. 在Cube->GetActorRotation()上叠加FRotator(0,0,-90)作为新的Actor Rotation


很明显,第一种情况是第二种的特例:其FTransform的Translation为ZeroVector

以上实际上就是FTransform的Multiply函数功能,见旋转相关的一些思考
 
  • → #723 旋转相关的一些思考   concept   ...   11 months ago (owner) Document