我正在尝试用磁铁做游戏。每个磁铁都有自己的磁场,该磁场将播放器拉向磁铁。
然后,玩家应该能够在磁铁的整个侧面上并排行走。
不应将播放器拉向中间。
现在,我已经通过增加玩家朝向磁铁的速度来做到这一点,这很好。
>
现在的问题是,玩家应该用脚朝着磁铁旋转。现在,我不知道如何根据磁铁的旋转来改变播放器的旋转。在某些情况下,这会导致播放器侧卧或倒置在磁铁上。
我还在使用统一标准资产中的第三人称相机,有时候,当播放器旋转时,相机只能上下移动。为了解决这个问题,我在World.Space周围使用了旋转功能。
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9qbVVsNi5qcGcifQ==” alt =“磁铁上的玩家”>
您应该获得相对位置,磁铁作为父母,而您的球员作为孩子。为此,您可以创建一个与玩家位置相同的其他gameObject,并将其设置为磁体的子代(或在磁体上设置一个子代,以更改其位置(绝对位置))。
完成后,您可以对magnetChildChild的本地化进行归一化,并使播放器lookAt(Unity中有一个函数)成为此vector + player.position。而且,您必须将播放器从x轴旋转90º(以使播放器的正面不是朝向它,而是朝向头部)。
我还没有尝试过,但是尝试一下也许可行。类似于:
magnetChild.position = player.position;
player.LookAt(player.position + magnetChild.localPosition.normalized);
player.Rotate(90.0f, 0.0f, 0.0f);