微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

刚体问题

如何解决刚体问题

我正在统一制作 fps,而我想要获得的游戏机制是跑墙/跳跃 我看过很多教程,但他们无法解决我遇到的问题。为了理解代码,我需要解释跑墙。基本上发生的事情是我有一个空的游戏对象

enter image description here

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

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

解决方法

从代码看:

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

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

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

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

在 Awake 或 Start 方法中使用 GetComponent() 缓存而不是 Update 更安全、更高效。如果您在第一帧中靠近墙壁,否则将出现空指针错误。

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

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

很高兴为我的消息点赞,这样我终于可以在 Stackoverflow 中发表评论了。

亲切的问候, 克里斯

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。