上篇中的移動方式會有坦克甩尾的現象,因為前進中轉彎時,原先方向的施力沒有完全消失,所以必須針對這個來做處理Vector3 aVelocity=rigidbody.velocity;//目前坦克移動的方向向量
Vector3 aForwarddir=transform.TransformDirection(Vector3.forward);//坦克轉向後的新的方向向量
Vector3 flatDir=Vector3.Normalize(new Vector3(aForwarddir.x,0,aForwarddir.z));
Vector3 flatVelo=new Vector3(aVelocity.x,0f,aVelocity.z);//地面速度向量
flatDir*=flatVelo.magnitude*Mathf.Sign(Vector3.Dot(flatVelo,flatDir));