今天看网课的时候看到了这个老师用了
//计算摄像机与人物的偏移
Vector3 offset = transform.position - player.position;
...
...
...
//计算出摄像机的位置
Vector3 targetPosition = player.position +player.TransformDirection(offset);
transform.position = Vector3.Lerp(transform.position, targetPosition, Time.deltaTime * smoothing);
transform.LookAt(player.position);
...
摄像机的位置是在人物屁股后面,
在人物转向时,他竟然自动跟在人物屁股后面,
按理说一个Vector3加上一个固定的向量,得到的值肯定不会改变方向。
网课的老师也没解释清楚,就说这个TransformDirection是局部坐标转换为世界坐标。
我感到很疑惑,把人物旋转了180度,面朝摄像机,运行后他还是跟在人物屁股后面,旋转了90度,还是一样。
之后我在茫茫百度中终于找到了答案
就是这一个
返回以物体自身为坐标轴的向量direction在世界坐标中的朝向向量。
划重点:以物体自身为坐标轴!
意思是以Player为原点(0,0,0),根据Player的局部坐标轴绘制出向量,再转化为世界坐标的向量,
当你人物转向时,你人物的局部坐标轴也会跟着转,所以绘制出的向量也会跟着转,
所以跟在屁股后面这件事是巧合,但是能始终维持一个方向是真的。
可以利用这个的原理写摄像机跟随。