我的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
}
}
问题是它进入了两个循环而我不知道我所给出的是错还是我给出的方式。我哪里错了?
答案 0 :(得分:3)
如果OnCollisionEnter事件正在触发(您可以添加打印以确保),则需要检查两件事:标签和碰撞器
<强>代码
尝试
collision.transform.tag
同时验证您是否为游戏对象选择了正确的标记。
<强>撞机强>
在Unity3D中,碰撞回调(onCollisionEnter等)仅在某些情况下发生。 EX:带有碰撞器和刚体组件的游戏对象(gameobject1)将与只有碰撞器的静态(不移动)游戏对象(gameobject2)发生碰撞。
我会查看Box Collider Reference因为底部是碰撞动作矩阵,它解释了碰撞发生的条件。
答案 1 :(得分:0)