unity3d:物体寻路贴合地面,y轴与地面normal方向平行(坦克爬斜坡问题)
坦克在爬斜坡时,保持坦克是贴合地面前进
寻路挂在父物体上,控制姿态脚本挂在坦克子物体上
RaycastHit hit;
int Rmask = LayerMask.GetMask ("Terrain");
Vector3 Point_dir = transform.TransformDirection(Vector3.down);
if (Physics.Raycast(transform.position, Point_dir, out hit, 50.0f,Rmask)) {
Quaternion NextRot=Quaternion.LookRotation(Vector3.Cross(hit.normal,Vector3.Cross(transform.forward,hit.normal)),hit.normal);
transform.MoveRotation(Quaternion.Lerp(transform.rotation,NextRot,0.1f));
}