Unity人物垂直地面的实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32225289/article/details/84778838
void Update () {
        RaycastHit hit;
        Vector3 point_dir = transform.TransformDirection(Vector3.down);
        if(Physics.Raycast(transform.position,point_dir,out hit,1000f,LayerMask.GetMask("Ground")))
        {
            Quaternion nextRot = Quaternion.LookRotation(Vector3.Cross(hit.normal,Vector3.Cross(transform.forward,hit.normal)),hit.normal);
            transform.rotation = Quaternion.Lerp(transform.rotation,nextRot,0.1f);
        }
	}

由人物的脚下发射射线,检测地面所在的层级,将人物的旋转置为垂直地面后的旋转

猜你喜欢

转载自blog.csdn.net/qq_32225289/article/details/84778838