Unity 四元数和向量相乘

Unity 四元数和向量相乘

原创 2016年12月08日 16:51:35

  1. position = rotation*Vector3(0.0, 0.0, -distance) + target.position;  

这是相机环绕的一段代码,当时无法理解这是怎么实现环绕的,上网查找了一些资料之后终于明白了,特来记录一下。

Unity 里的rotation是四元数,四元数*向量   得到的是经过旋转后的向量,  例如 Quaternion.Euler(0,90,0) *  vector3(0 , 0 , -distance)  得到的是  (-distance,0,0)

实际上就是把(0,0,-distance)绕着y轴旋转90度变成了 (-distance,0,0)   ,在与目标位置相加后就能围绕目标环绕了

yaonan123
  • yaonan123

    2017-09-15 23:07 1楼
  • 还记得四元数乘以向量的问题吗?position = rotation*Vector3(0.0, 0.0, -distance) + target.position;
    这样的到的positon是不固定的,改变distance的值,这样摄像机得位置就会发生变化,在开始的那一刹那,摄像机位置发生变化

你可能感兴趣的:(3dmax,unity3d)