如何在Unity3D中计算“法向量A向任意法向量B旋转,使得两个向量夹角减小N度后的A向量”

1个回答

  • 其实我不太明白你究竟想要什么……

    如果只是返回zero或者B的话,我只需要判断AB方向就可以了,何苦还要计算旋转呢?

    判断方向很容易,可以使用

    Vector3.Angle()

    靠拢的话,有这样一个函数

    public static Vector3 RotateTowards(Vector3 current, Vector3 target, float maxRadiansDelta, float maxMagnitudeDelta);

    第一个参数是原向量A,第二个是目标向量B,第三个是角度,第四个设置成0.0f就可以了。

    (当然,A,B都是单位向量的话。)

    但是这个函数看起来是这样的意思,我并没有实践过。

    可参考:http://docs.unity3d.com/ScriptReference/Vector3.RotateTowards.html