我遇到了一个与旋转相关的问题,这让我抓狂。
我对 3D 世界还是个新手,正在研究角色移动。目标是:
当下半身目标方向与玩家运动正好相反时,就会出现问题(因为下半身应该向后移动,角度为 180°)。例如,用户正在查看右上角并向左笔直移动,因此其腿应该面向右方,因为他正在向后走。如果他向右移动并且面向右侧,那么下方的方向也是正确的,因为他正在向前移动。
正如您在所附视频中看到的,有时(当所需角度为 180° 时),下半身会向错误的方向旋转,这看起来很奇怪(当我在下面的视频中抬头时)。
颜色有:
简化的更新代码如下所示:
void Update()
{
// (...)
// _look is the direction the user mouse is facing (yellow)
// _move is the current direction the user is moving (green)
// _lowerDirection is the final direction the character lower body should face (red, based on the user looking direction and its movement)
// _characterMesh.transform.forward is the current direction the character is facing (blue)
_characterMesh.transform.rotation = Quaternion.Lerp(
_characterMesh.transform.rotation,
Quaternion.LookRotation(_lowerDirection), Time.deltaTime * TURN_SPEED);
// (...)
}
我已经尝试了很多事情,但很难找到实现这一目标的好方法,有人可以帮助我吗?