3D相对角度和计算

Vla*_*lad 3 c# math euler-angles unity-game-engine

我有一个四元数形式的旋转r1的3D对象.我用当地的欧拉角旋转它:

transform.Rotate(new Vector3(0f, 15f, 0f), relativeTo: Space.Self); // right
transform.Rotate(new Vector3(-10f, -5f, 0f), relativeTo: Space.Self); // left up
transform.Rotate(new Vector3(0f, 0f, 90f), relativeTo: Space.Self); // 90 clockwise
Run Code Online (Sandbox Code Playgroud)

现在我有旋转r2.如果我不知道应用了哪些角度,如何检索局部Y旋转和15-5 + 0 = 10?可能无法获得完全相同的价值(10),但你已经有了我的想法.也许我可以在当地的r2空间获得Y diff ?

Vla*_*lad 6

我发现一个可能的解决方案

        (r2 * Quaternion.Inverse(r1)).eulerAngles.Y
Run Code Online (Sandbox Code Playgroud)