using System.Collections; using System.Collections.Generic; using UnityEngine; public static class QuaternionHelper { static QuaternionHelper() { } // 限制旋转的自由度,只有Axis方向的自由度,即提取旋转中绕axis的部分 public static Quaternion Limit1DOF(Quaternion rotation, Vector3 axis) { // Quaternion.FromToRotation得到的是最短路径,不包含绕axis的旋转 Quaternion res = Quaternion.FromToRotation(rotation * axis, axis) * rotation; return res; } }