OnCollisionEnter无法正常工作

时间:2012-01-11 11:20:44

标签: unity3d collision-detection unityscript gameobject

我的Unity3d中的onCollisionEnter功能有问题。问题是我有一个第三人称控制器,如果与一个boudary对象发生碰撞,应该激活另一个游戏对象和一个标签。

这就是我给出代码的方式

function OnCollisionEnter(collision : Collision)
{
   if(collision.gameobject1.tag=="tag1")
   {
     // activate game object and label
   }
   if(collision.gameobject2.tag=="tag2")
   {
      // deactivate game object and label
   }
}

问题是它进入了两个循环而我不知道我所给出的是错还是我给出的方式。我哪里错了?

2 个答案:

答案 0 :(得分:3)

如果OnCollisionEnter事件正在触发(您可以添加打印以确保),则需要检查两件事:标签和碰撞器

<强>代码

尝试

collision.transform.tag

同时验证您是否为游戏对象选择了正确的标记。

<强>撞机

在Unity3D中,碰撞回调(onCollisionEnter等)仅在某些情况下发生。 EX:带有碰撞器和刚体组件的游戏对象(gameobject1)将与只有碰撞器的静态(不移动)游戏对象(gameobject2)发生碰撞。

我会查看Box Collider Reference因为底部是碰撞动作矩阵,它解释了碰撞发生的条件。

答案 1 :(得分:0)

请为Unity添加标签。也许你不会在对象上添加标签。请将tag1tag2添加到您的代码中,选择您的对象,然后选择tag1tag2

enter image description here