【问题标题】:Trouble with RigidBody刚体问题
【发布时间】:2021-04-15 11:35:05
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# unity3d game-physics rigid-bodies


    【解决方案1】:

    从代码来看:

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

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

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

    最好从事件 FixedUpdate() 而不是 Update() 应用物理力。

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

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

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

    对我的消息投赞成票会很好,所以我终于可以在 Stackoverflow 中制作 cmets。

    亲切的问候, 克里斯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-05
      • 1970-01-01
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多