【问题标题】:Unity OnTriggerEnter Multiple Call Problemunity OnTriggerEnter 多次调用问题
【发布时间】:2021-05-27 04:33:33
【问题描述】:

我的角色中只有刚体。 没有碰撞器组件。

它所接触的对象中只有BoxCollider,并且IsTrigger bool 为真。

虽然我已经尝试过代码中的各种代码。但没有修复。调用多次错误并打印Log。

 private void OnTriggerEnter(Collider other)
{

    if (other.gameObject.CompareTag("Respawn"))
          RandomChange();
}


private void RandomChange()
{
   // TO DO
   Debug.Log("CHARACTER ENTERED")
}

【问题讨论】:

  • 你的问题很不清楚。你能正确地改写它吗?
  • 你能发布更多信息吗?不发布任何代码或设置让我们完全不知道问题可能是什么。你的播放器组件上有什么样的碰撞器?你确定你没有使用OnTriggerStay 而不是OnTriggerEnter
  • 我添加了更多代码来帮助您理解这个问题。这就是所有的问题,这就是我能说的。
  • 我仍然不明白你到底想要达到什么目的......以及正在发生什么?
  • 一旦它应该工作。一次 >> ( RandomChange() ) 但两次或多次有效。

标签: unity3d


【解决方案1】:

要使刚体工作,您需要一个对撞机组件。没有一个,游戏就无法知道您希望玩家在哪里或在哪里。

Unity 是非常可定制的,它让您可以选择哪些内容可以作为播放器的一部分。例如,您可能不希望将斗篷算作对撞机。斗篷不应该有对撞机,因为它会影响物理。某些东西可能会通过击中斗篷将玩家撞倒(就像它是真人的一部分)。

Unity 有自己的网格碰撞器,您可以将其附加到所有顶点以算作碰撞器。


修复

要解决这个问题,向玩家添加一个胶囊碰撞器应该可以工作(任何其他碰撞器都可以工作,不过胶囊对玩家有好处)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 2022-08-19
    相关资源
    最近更新 更多