碰撞检测不适用于模型

时间:2013-10-12 21:36:46

标签: unity3d unityscript

我正在尝试检测子弹(有刚体和箱式对撞机)是否击中我的模型(具有CharacterController和网格对撞机),但它不起作用。如果我在一个立方体(也有一个CharacterController和一个Box Collider)上尝试相同的脚本,它的效果非常好。我已经尝试将它作为触发器并使用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 ")
    }
}

1 个答案:

答案 0 :(得分:0)

角色控制器的碰撞检测仅在两个碰撞的对象包含角色控制器时有效。

因此,您的子弹不会与您的模型发生冲突。

你的立方体与模型碰撞,因为它包含角色控制器。如果你移除了盒子对撞机,立方体它仍会检测到与模型的碰撞。

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

如果你在子弹上添加角色控制器,碰撞就会起作用。

希望这有帮助!