1

我已经面临音频问题 3 天了。碰撞后我想播放音频。没有得到任何正确的想法或问题出现在我的场景中,我无法解决我的问题。在我的 GameObject 中,我通过“添加组件”添加了音频源,我将 mp3 文件放入 AudioClip 并选中了“唤醒时播放”。

注意: PlayExplosionAnimation() 和 Destroy() 工作正常。

public class Player : MonoBehaviour
{

    private AudioSource source;

    void Start()
    {
        source = GetComponent<AudioSource>();
    }

    void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.tag == "Rocks")
        {
            source.Play();
            PlayExplosionAnimation();
            Destroy(gameObject);
        }
    }

}
4

2 回答 2

0

问题在于,AudioSource它附加到了在检测到碰撞后立即被破坏的游戏对象,因此您实际上永远不会听到声音。一种可能的解决方案是通过指定要延迟销毁的秒数来延迟销毁游戏对象,例如延迟 0.5 秒。

void OnCollisionEnter2D(Collision2D collision)
{
    if (collision.gameObject.tag == "Rocks")
    {
        source.Play();
        PlayExplosionAnimation();
        Destroy(gameObject, 0.5);
    }
}
于 2019-10-11T12:59:19.047 回答
-1

试试这个,如果它仍然不起作用,这意味着你的音频有问题:)

public class Player : MonoBehaviour
{
private AudioSource source;

void Start()
{
    source = GetComponent<AudioSource>();
}

void OnCollisionEnter2D(Collision2D collision)
{
    if (collision.gameObject.tag == "Rocks")
    {
        source.Play();
        PlayExplosionAnimation();
        gameObject.SetActive("false");
        Destroy(gameObject, 1f);
    }
}

}

于 2019-10-11T12:53:43.740 回答