Unity3d OnCollisionCenter()在弹跳时无法使用刚体和连续检测。。?

Unity3d OnCollisionCenter()在弹跳时无法使用刚体和连续检测。。?,unity3d,collision-detection,Unity3d,Collision Detection,因此,正如标题所暗示的,我的OnCollisionCenter没有被调用。我不知道为什么。对象从它们接触的曲面上反弹 以下是相关代码: static Rigidbody m_ProjectileRigidbody; internal void FireProjectile(GameObject projectile, float speed) { projectile.transform.position = State.PlayerTransform.position

因此,正如标题所暗示的,我的OnCollisionCenter没有被调用。我不知道为什么。对象从它们接触的曲面上反弹

以下是相关代码:

static Rigidbody m_ProjectileRigidbody;
internal void FireProjectile(GameObject projectile, float speed)
{
    projectile.transform.position =
        State.PlayerTransform.position + State.PlayerTransform.forward;
    projectile.transform.rotation = State.PlayerTransform.rotation;

    m_ProjectileRigidbody = projectile.GetComponent<Rigidbody>();
    m_ProjectileRigidbody.AddForce
        (State.PlayerTransform.forward * speed, ForceMode.Impulse);

    if (State.PlayerState.Consumes)
    {
        State.PlayerState.ConsumeCellEnergy(EnergyConsumption);
        State.PlayerState.GenerateCellHeat(HeatProduction);
    }
}

void OnCollisionEnter(Collision collision)
{
    Debug.Log("Collided With: " + collision.gameObject.name);
}

如果使用二维碰撞器和刚体,请使用OnCollisionInter2D而不是OnCollisionInter

并确保在编辑->项目设置->物理中正确设置了碰撞矩阵

同时,再次检查:

两个物体都有对撞机,刚体设置正确。 两个对象都处于活动状态。 您不会意外禁用碰撞器、刚体或集合 IsKinetic,isTrigger来自您的脚本。
如果使用二维碰撞器和刚体,请使用OnCollisionInter2D而不是OnCollisionInter

并确保在编辑->项目设置->物理中正确设置了碰撞矩阵

同时,再次检查:

两个物体都有对撞机,刚体设置正确。 两个对象都处于活动状态。 您不会意外禁用碰撞器、刚体或集合 IsKinetic,isTrigger来自您的脚本。
注意:仅当其中一个碰撞器还附加了非运动学刚体时,才会发送碰撞事件。你知道吗?知道。这就是为什么我放了一张预制房屋的截图。这不是运动学。你在用2D对撞机吗?我们能看到他与之碰撞的物体吗?注意:只有当其中一个碰撞器还附加了非运动学刚体时,才会发送碰撞事件。你知道吗?知道。这就是为什么我放了一张预制房屋的截图。这不是运动学。你在用2D对撞机吗?我们能看到他碰撞的物体吗?谢谢,我以为只有一个人必须有一个刚体。谢谢,我以为只有一个人必须有一个刚体。