- 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) ,在与目标位置相加后就能围绕目标环绕了