沿给定轴旋转网格,然后再次沿不同轴再次旋转

问题描述

我正在为我的游戏开发块旋转组件,但遇到了一些我无法弄清的障碍。基本上,我希望能够沿所有三个轴旋转网格组件。播放器一次只能旋转一个轴90度或-90度。我还希望玩家始终根据世界的X,Y和Z轴旋转网格,而不是根据块的相对轴旋转网格,后者会随着旋转而改变。我该如何实现?

不旋转的网格:

Mesh with no rotation.

网格沿X轴逆时针旋转90度:

Mesh rotated 90 degrees CCW along X axis.

从这里开始的问题是,如果我想沿Y轴旋转块,而是要沿Z轴旋转块,因为现在已旋转了块。如何保持新旋转面向世界轴而不是面向网格?

解决方法

为此找到了解决方案。我需要一个名为AddWorldRotation的蓝图节点。在演员或组件的C ++中,您也将调用AddWorldRotation。然后,您只需输入要添加到组件现有旋转中的旋转器即可。

对于我来说,沿特定轴旋转90度将是FRotator(90,0,0),FRotator(0,90,0)或FRotator(0,0,90)。