【发布时间】:2021-01-14 17:56:39
【问题描述】:
所以我在 Unity 中制作 FPS 游戏,我曾经使用 transform.translate 进行移动,但如果移动速度足够快(对角线移动),玩家可以穿过墙壁移动,甚至大小都无关紧要墙的碰撞箱是。
这是我的播放器控制器代码:
这是移动代码:
void FixedUpdate()
{
myBody.MovePosition(transform.position + (transform.forward *
Time.deltaTime * speed));
}
void Update()
{
float axisX = Input.GetAxis ("Horizontal");
float axisY = Input.GetAxis ("Vertical");
更多信息:使用此代码,玩家现在可以在非常特定的方向上移动,而不管旋转。此外,W 和 S 上下移动,而不是前后移动。
【问题讨论】:
-
请编辑问题,并将所有代码包含在sn-p中,以提高可读性
标签: c# unity3d 3d game-physics rigid-bodies