物体与对撞机碰撞时声音不播放/如何同时播放声音和改变场景 - 统一



您好,我希望在游戏对象与碰撞体碰撞时播放声音。我为此检查了 Unity 文档,但我似乎不明白为什么这不起作用。我已将音频源应用于对撞机。

public AudioClip impact;
private AudioSource audioSource;
void Start(){
audioSource = GetComponent<AudioSource>();
}
void OnCollisionEnter2D(Collision2D coll){
if (coll.gameObject.tag == "Enemy") {
audioSource.PlayOneShot (impact);
Application.LoadLevel ("win");
}
}

问题出在启动函数中,因为启动的"s"是大写的

替换此

空开始((

void Start((

这将修复空引用异常

我解决了。我试图加载一个新的关卡并同时播放声音,所以我只需要增加一些时间与co-routine分开。现在我的脚本看起来像这样并且可以工作。希望我能帮助别人。

void OnCollisionEnter2D(Collision2D coll){
if (coll.gameObject.tag == "Enemy") {
GetComponent<AudioSource> ().Play ();
StartCoroutine (MyLoadLevel(0.5f , 1));
}
}
IEnumerator MyLoadLevel(float delay, int level)
{
yield return new WaitForSeconds(delay);
Application.LoadLevel("win");
}

最新更新