SceneKit:对 SCNNode 应用多次旋转但保持原始轴不变

SceneKit: Apply multiple rotations to SCNNode but keep the original axes constant

在我的场景中,每个 SCNNode 都有 3 个与之关联的值,用于滚动、俯仰和偏航。

当我加载 SCNNode 时,我想按顺序应用这 3 个旋转。但是,这 3 个值假设节点的轴始终不变,我 运行 遇到了问题,因为节点的轴在每次旋转后都会发生变化。

例如,如果 z 轴最初指向用户(屏幕外)并且 y 轴最初指向上方并且我应用 90 度滚动旋转那么 z 轴仍将指向屏幕,但 y 轴现在将指向左侧。这将使后续的偏航旋转不正确。

有什么方法可以相对于一组恒定的轴旋转节点吗?

我需要的是 SCNNode 方法 rotate(by:aroundTarget:)

https://developer.apple.com/documentation/scenekit/scnnode/2867399-rotate