仅以Actor为例子。Components与之一样。
仅描述Rotation,不讲Location与Scale。
2个API
> * GetActorRotation(取的是world系)
> * SetActorRotation(设的是world系)
两个重点:
1. unreal里四元数乘法A*B,代表先执行B旋转,再在新的姿态下执行A旋转。这一条与是否局部或全局坐标系没关系,它就是恒成立。
2. 从零姿态开始构建旋转。
讲2个例子。紧紧的围绕着上述真理来思考unreal里的变换,不要想多。
> 例子一:父和子两个物体。要求子物体在当前姿态的基础上,绕自身坐标轴旋转。
> 分析:当前姿态X通过GetActorRotation可以获取。绕自身坐标轴的旋转为N。很自然的,我们可能认为这个旋转需求可以通过N*X来实现。没错,这是正确的,满足上面说的从零姿态运动到X姿态,再执行N旋转得到最终姿态。但问题是,这个N不像我们以为的那样容易描述,因为这个N必须是在子物体处于当前X姿态的世界系中描述的,而它的坐标轴此时很可能不是0、1、0三个数。所以,我们必须变通一下。我们先在子物体处于world零姿态时描述一下N,这时的N是很容易描述的,在执行N旋转后, 再执行X旋转,所得的