刚体问题

Trouble with RigidBody

我正在 unity 中制作 fps,而我想要获得的游戏机制是墙 running/jumping 我看过很多教程,但它们无法解决我遇到的问题。要理解我需要解释墙的代码运行。基本上发生的事情是我有一个空的游戏对象

光线投射玩家检测墙壁的左侧和右侧。如果它找到一堵墙并且我按住左键或右键(取决于墙在哪一侧),它会增加一个力将玩家推向墙,另一个力将我向前推。如果我跳墙,它会根据我跳的位置增加一个力。为了确保它正常工作,我创建了一个名为 iswall运行ning 的布尔值,但它从未被设置为 true。我可以得到帮助吗

代码:https://github.com/ZeeScratcher/Project-robot-game/blob/main/WALLRUN.cs

从代码看:

你应该只在他们负责的方法中编写代码。在 StartWR() 中不要调用 StopWR()。这将在 CheckForWR() 中完成。

不知道方向从何而来。我想这是来自一个儿童游戏对象。这很好,对于测试,将 Orientation 替换为 transform。

您可以使用 Debug.DrawLine() 可视化光线。

更好地应用来自事件 FixedUpdate() 而不是 Update() 的物理力。

在 Awake 或 Start 方法中使用 GetComponent() 缓存比 Update 更安全、性能更高。如果你在第一帧靠近墙,否则你会得到一个空指针错误。

检查您的墙壁是否与给定的物理 LayerMask 相匹配,并且墙壁是否有碰撞器。

如果您将所有代码都写入 Update() 方法并稍后将其拆分为方法会更容易。

如果能为我的留言点赞就好了,这样我终于可以在 Whosebug 中发表评论了。

亲切的问候, 克里斯