我正在试着用磁铁做一个游戏。每一块磁铁都有自己的磁场,将玩家拉向磁铁。
然后,玩家应该能够沿着磁铁的整个一侧行走。
球员不应该被拉向中心。
现在我已经做了这件事,增加了玩家朝向磁铁的速度,这很好用。
现在的问题是球员应该用他的脚朝向磁铁旋转。现在我想不出如何根据磁铁的旋转来改变播放器的旋转。这导致播放器在某些情况下在磁铁上侧翻或颠倒。
我也使用unity标准资源中的第三人称相机,有时当玩家旋转时,相机只能上下看。为了解决这个问题,我在World.Space周围使用了一个旋转函数。
发布于 2019-10-12 09:02:46
你应该得到相对的位置,磁铁作为父母,你的玩家作为孩子。为此,您可以创建一个与播放器具有相同位置的不同gameObject,并将其设置为磁铁的子对象(或者在更改其位置(绝对位置)的磁铁上设置一个子对象)。
一旦你这样做了,你标准化了magnetChild的本地位置,你让播放器lookAt (Unity中有一个函数)这个向量+ player.position。你必须将播放器从x轴旋转90度(为了使播放器的正面不是朝向它,而是头部)。
我还没试过,但试一试也许能行得通。类似于:
magnetChild.position = player.position;
player.LookAt(player.position + magnetChild.localPosition.normalized);
player.Rotate(90.0f, 0.0f, 0.0f);
https://stackoverflow.com/questions/53280297
复制