【发布时间】:2019-03-28 05:35:57
【问题描述】:
假设我在一个 2D 统一游戏中有一个玩家飞船和一个星球。我想让船的旋转相对于它正下方的表面下降(例如,如果船下面的表面部分是 80 度,那么船在该点上方时应该倾向于下降到 80 度)。
我目前有一个可以工作的代码:
Vector2 direction = planet.position - transform.GetChild(0).position;
float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg + 90;
rig[0].AddTorque(-rig[0].rotation + angle);
它做我想要的,除了船的旋转从 360 过渡到 0 的地方,它会突然 360 翻转。我正在尝试弄清楚如何避免这种情况发生。
我不想为此使用LookAt(),因为这应该是趋向于目标方向的扭矩,而不是指向该方向的快速设置。
【问题讨论】: