在游戏中你控制一个球(Sphere)和两种类型的盒子掉落:deathCube和goldCube。当球体击中死亡立方体时,球体就会被摧毁,但它不会被摧毁,我不知道为什么。立方体是预制件,它们有一个标签(DeathCube,GoldCube)。
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "DeathCube")
{
Destroy (gameObject);
}
}
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "GoldCube")
{
gold++;
}
}
如果Sphere击中了goldCube,你会获得积分,但这也不起作用。
答案 0 :(得分:2)
尝试将两个OnTriggerEnter合并为一个。
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "DeathCube")
{
Destroy (gameObject);
}
if (other.gameObject.tag == "GoldCube")
{
gold++;
}
}
我相信第二个覆盖了第一个,从不允许调用Destroy()
。我会假设编译器会抛出一个错误,但你似乎没有表明这一点。
答案 1 :(得分:1)
如果您没有在碰撞(球或立方体)中的至少一个物体上附加刚体,则不会启动触发事件。
来自文档:
注意:仅当其中一个碰撞器还附有刚体时才会发送触发事件
来源:https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerEnter.html