【发布时间】:2016-11-08 04:48:48
【问题描述】:
我正在 Unity 中测试一些想法,玩家可以在圆圈上行走(因此圆圈有自己的重力)并且方向正确。这个游戏目前是 2D 的,所以所有的对象都是精灵。
我希望我能正确地解释自己。请询问您是否需要进一步说明...
我的想法似乎成功了,直到我发现一些奇怪的东西。
正如预期的那样,玩家绕着圆圈移动而不会掉落(自定义重力效果很好),并且它的 Z 旋转受到影响,因为它与一个方向对齐:
//对齐代码:
// 我们反转方向,使物体以正确的方式站立。
private void Update()
{
transform.up = -(planet.position - transform.position);
}
它的工作原理......主要是。但是,当玩家对象的旋转 Z 自然地达到 180 时,它似乎会水平翻转(就像一个镜像效果),然后在旋转 Z 离开 180 时它会恢复正常。视觉翻转发生是因为由于某种原因,对象的 Y 在也是同一时间。 X 或 Y 在旋转方面没有其他任何变化。只有 Z。所以当 Z 达到 180 时,Y 受到影响,而当我们离开 Z 180 时,Y 又回到 0。
如果有人需要对正在发生的事情有一些直观的了解,我很乐意提供一段关于它在游戏中发生的快速视频。
此错误的可见性往往取决于您绕圈移动的速度。如果你移动得足够快,你可能会跳过 180 并且根本看不到它发生,但是如果你移动得足够慢,则不可否认它就在那里。这也是一个问题,因为我只是让相机成为玩家的孩子,所以当玩家翻转时,导致整个场景翻转的相机也会发生翻转,这对于玩家来说看起来非常有问题。
我真的不知道如何解决这个问题,因为我不知道它为什么会这样做。在每个其他旋转值下,它的表现都很好。只有在 Z = 180(因此对象完全倒置)时,它才会决定以错误的方式旋转。
编辑:将标签更改为 Unity3D
【问题讨论】: