【问题标题】:In Unity3D How to Detect the Collider Touch and Stay In Other Collider?在 Unity3D 中如何检测碰撞体触摸并停留在其他碰撞体中?
【发布时间】:2015-04-15 03:11:13
【问题描述】:

我需要检查球体对撞机是否仍然留在网格对撞机中。 现在我用了:

void OnCollisionEnter(Collision info)
{
    Debug.Log("enter");
}
void OnCollisionStay(Collision info)
{
    Debug.Log("stay");
}

void OnCollisionExit(Collision info)
{
    Debug.Log("out");
}

场景如下:

onCollisionStay() 将每帧执行一次,但是当场景来到之前,Debug 不记录继续,而是“Out”。

所以我需要知道为什么停留事件不停留以及如何检测一个对撞机

留在另一个就在里面并触摸?

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    增加 Sphere collider 的大小或在 Collision Stay 功能中使用“延迟”选项。你的问题有点笨拙,你想做什么,说清楚。

    【讨论】:

    • 球体像一个点一样小。当我将球体移动到网格对撞机中时,我希望 OnCollisionStay() 应该每帧执行,但不是。只记录“停留”几帧,没有继续
    【解决方案2】:

    你能提供更多关于网格对撞机的细节吗?碰撞器也可能非常小,并且在某些时候,球体的一部分(不是整个球体,因此您认为仍应调用 OnCollisionStay)离开网格碰撞器,从而激活 OnCollisionExit(),但是由于 OnCollisionEnter() 没有被回调,因此 OnCollisionStay() 永远不会被再次调用。

    也许你可以检查一下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 2022-08-20
      相关资源
      最近更新 更多