碰撞检测在模型中不起作用



我正在尝试检测子弹(具有刚体和箱形碰撞体(是否击中了我的模型(具有CharacterController和网格碰撞体(,但它不起作用。如果我在立方体(它还有一个角色控制器和一个盒子碰撞体(上尝试相同的脚本,它工作得很好。我尝试将其设置为触发器并使用 OnTriggerEnter,但它仍然不适用于模型,但在立方体上也运行良好。这是我的代码。

function OnControllerColliderHit (hit : ControllerColliderHit)
{       
    //doesnt work for either of them   
    if(hit.gameObject.tag == "bullet")
    {
        print("i have been hit by a bullet");
    }
}
function OnTriggerEnter(hit : Collider) 
{
    //works for the cube and not the model
    if(hit.gameObject.tag == "bullet")
    {
        print("i have been hit by trigger hit ");
    }
}
function OnCollisionEnter(hit: Collision) 
{
    //works for the cube and not the model
    if(hit.gameObject.tag == "bullet")
    {
        print("i have been hit by trigger hit ")
    }
}

仅当碰撞的两个对象包含字符控制器时,字符控制器的冲突检测才有效。

因此,您的项目符号不会与您的模型冲突。

您的立方体 它与模型发生冲突,因为它包含字符控制器。如果移除盒子碰撞体,立方体它仍将检测与模型的碰撞。

您必须选择将使用哪种碰撞系统。

如果您在子弹上添加角色控制器,则碰撞将起作用。

希望这有帮助!

最新更新