再利用动画控制人物移动的过程中,实现智能转向(自动判断向左还是向右转)功能的方法有许多种,效果不一而足,代码量也千差万别,在这里,博主给出以下四种可以实现转向方法以供参考
1.利用三维向量Vector3.Slerp插值实现转向:
transform.forward = Vector3.Slerp(transform.forward, TargetDir, Time.deltaTime*speed);
最为简短易懂的方法,TargetDir是目标方向,speed是转向速度;
————————————————————————————————————————————————————————————————————————————
2.利用四元数的Quaternion.Lerp插值实现转向:
//先得到一个旋转(四元数newRotation ),他的方向是目标朝向,转轴是y轴
Quaternion newRotation = Quaternion.LookRotation(TargetDir, transform.up);
//在当前朝向的四元数通过插值的方法平滑变为目标朝向的四元数
transform.rotation = Quaternion.Lerp(transform.rotation, newRotati