碰撞时声音没有播放

时间:2020-07-22 14:02:07

标签: c# unity3d

我正在使用Unity进行游戏,现在我想在弹丸击中物体时实现声音效果。不知何故没有声音在播放。这是代码:

AudioSource sound;

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

void Destroy()
{
    sound.Play();
}

1 个答案:

答案 0 :(得分:0)

您尚未显示是否调用Destroy()函数。请在您的Destroy()函数内添加一个Debug.Log("Called")并对其进行测试。如果被调用,则可能与系统的音量有关,或者音频组件处于静音状态。请检查这些初始内容。 如果未调用,则了解GetComponents之间的区别。

将脚本附加到包含AudioComponent的游戏对象时,请按照以下方式编写:

private AudioSource sound;

void Start()
{
   
       sound = GetComponent<AudioSource>();
       sound.Play(); 
       
}

当您将脚本附加到另一个gameObject并想将Audio gameObject引用到此脚本时,请按以下方式编写:

public AudioSource sound;

void Start()
{
   
       sound.GetComponent<AudioSource>(); //this is optional
       sound.Play(); 
       
}

别忘了在第二个解决方案中将其添加为参考(拖放音频组件的GameObject)。