我能够向正确的方向移动,但它旋转不正确(错误的方式)! 我在Unity 5中这样做:
Vector3 _veloMove;
Vector3 _rotation;
void Start()
{
body = gameObject.GetComponent<Rigidbody>();
}
void OnCollisionExit()
{
_veloMove = body.velocity;
_rotation = body.angularVelocity;
isKinematic = true;
}
FixedUpdate()
{
if (body.isKinematic)
{
body.MovePosition(transform.position + _veloMove * time;
body.MoveRotation(transform.rotation * Quaternion.Euler(_rotation * Time.fixedDeltaTime));
}
}
答案 0 :(得分:0)
看来这可能是您的问题:
transform.rotation * Quaternion.Euler
尝试将其转化为
transform.rotation + Quaternion.Euler
看看是否有效。