当两个相同的物体碰撞时播放音频一次

时间:2017-01-05 13:13:35

标签: c# events unity3d collision-detection

我有两个附加相同脚本的对象(警察)来控制这些对象的行为。当对象碰撞时,OnTriggerEnter都能正常工作(使它们变成布娃娃和其他东西)。在OnTriggerEnter中,为两个对象触发了OnPlaySound事件。所以当两个物体发生碰撞时,我会播放两个声音。如果只针对其中一个事件触发此事件,我该怎么办?

缩短版本的脚本:

void OnTriggerEnter(Collider other)
{
    OnPlaysound(SoundType.SmallOoh);
    OnAddScore(1);
    StartCoroutine("Death");
    RagDoll();
}

修改

按程序员的建议解决了这个问题:

void OnTriggerEnter(Collider other)
{
    if (other.getComponent<PoliceManScript>().soundPlayed == false)
    {
        soundPlayed = true;
        OnPlaysound(SoundType.SmallOoh);
    }
    OnAddScore(1);
    StartCoroutine("Death");
    RagDoll();
}

0 个答案:

没有答案