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

时间:2017-08-20 08:12:39

标签: unity3d

你好我想在游戏对象碰撞对战时发出声音。我检查了Unity文档,我似乎不明白为什么这不起作用。我将audiosource应用于对撞机。

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");
    }
}

2 个答案:

答案 0 :(得分:2)

问题在于启动功能,因为's'的开始是大写

替换此

void start()

void Start()

这将修复空引用异常

答案 1 :(得分:0)

我解决了。我试图在同一时间加载一个新级别和播放声音,所以我只需要添加一些时间与协同程序分开。现在我的脚本看起来像这样并且有效。希望我帮助别人。

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");
}