如何确保精灵在 2D 自上而下的游戏中始终朝向正确的方向.(逻辑)



我正在制作一个带有3D元素的多人自上而下的2D游戏。我所有的动作、健康条和基本功能即使在服务器 node.js socket.io 上托管和播放时也能完美运行。但是,在这个游戏中,可以像在疯神的领域一样移动相机。

如果您有任何疑问,这里有一个视频:https://youtu.be/4tdcxl3aZ0c?t=31s

这当然意味着玩家最终可能会彼此颠倒,我找不到一个在所有方面都有效的解决方案来确保其他玩家的精灵始终面向正确的方向。

我已经为这个问题做了几个解决方案,涵盖了大多数场景,但在游戏测试其他事情时,我们总是最终注意到精灵有时会面对错误的方向。所以我想知道是否有人有答案,逻辑,解决这个问题。

我尝试过的事情:

  • 将游戏对象添加到摄像机中,所有精灵都会评估其距离变化,并根据该信息确定其朝向。(这导致玩家在移动摄像机时有时会不规则地翻转,他们也在移动,因为有时他们可能移动得更慢,尽管向左移动,摄像机从右侧接近并翻转他们)
  • 向世界添加一个游戏对象,允许所有精灵都有一个固定点,他们可以测量距离的变化,因此也知道要面对的方向(这效果更好,因为他们总是知道他们必须面对什么方向,但是一旦玩家颠倒,一切都会颠倒)
  • 向其他玩家发出我是否颠倒,以便在我颠倒的情况下尝试重新颠倒上述解决方案。(我找不到一个好的方法来做到这一点,这让我想到这一定是人们之前已经解决过很多次的问题,也许有人知道一个有效的好解决方案。

谢谢大家的投入。

我似乎已经找到了解决这个问题的解决方案,效果很好。请记住,我不想让服务器参与其中,我宁愿让每个单独的精灵知道它的方向,而不是有一些沉重的东西试图确定这个逻辑,我想出了以下解决方案。可能不是最好的,但它有效。仍然非常渴望听到其他解决方案。

在我的主角身上,我有一个开关盒,它会根据世界中的玩家轮换而变化。无论如何,我都需要这个开关盒来修复(http://answers.unity3d.com/questions/1348301/trying-to-change-the-cameratransparencysortaxis-to.html?childToView=1348316#answer-1348316)这个问题。

随着情况的变化,我只需将我希望精灵比较其距离的游戏对象放置在 4 个位置中的 1 个位置。YPos, YNeg, XPos, XNeg.这意味着精灵现在根据根据玩家位置放置的游戏对象确定其朝向。无需将其放在相机上。

如果在接下来的游戏测试中这给我带来了麻烦,我会更新,但到目前为止,它在我需要它的所有情况下都有效。

仍然非常愿意听到这个问题的其他解决方案。

谢谢。

最新更新