使用四元数围绕对象旋转

RotateAround an object with using Quaternion

我有一个很好的问题要问代码大师。想想你只有一个计算出的旋转值来旋转变换。但是你必须围绕它的子枢轴位置旋转。你是怎么解决这个问题的?

感谢您的宝贵时间:)

我写了代码。 这是解决方案。

为什么要重新发明轮子? ;)

Unity 有 Transform.RotateAround and for the input you could simply use Quaternion.ToAngleAxis 比如

public static class TransformExtensions
{
    public static void RotateAround(this Transform transform, Transform pivot, Quaternion rotation)
    {  
        RotateAround (transform, pivot.transform.position, rotation);
    } 

    public static void RotateAround(this Transform transform, Vector3 pivotPoint, Quaternion rotation)
    {   
        rotation.ToAngleAxis(out var angle, out var axis);

        transform.RotateAround(pivotPoint, axis, angle);
    }
}