在C++中使用AddActorLocalRotation( )方法进行相对旋转时,有时会出现旋转不符合预期的问题。这个问题通常出现在父级与子级具有不同方向的情况下。
为了解决这个问题,可以使用以下方法解决:
获取父级Actor的旋转值
转换相对旋转为绝对旋转
将绝对旋转与父级旋转相加得到相对旋转
下面是一个示例代码,说明如何实现这个方法:
// 得到父级Actor的旋转
FRotator ParentRotation = this->GetAttachParentActor()->GetActorRotation();
// 把相对旋转转变成绝对旋转
FRotator AbsoluteRotation = RelativeRotation + ParentRotation;
// 添加相对旋转到子级Actor
this->AddActorLocalRotation(AbsoluteRotation);
通过这种方法,可以使相对旋转更加准确,确保子级Actor的旋转与父级对齐。