你好我想在游戏对象碰撞对战时发出声音。我检查了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");
}
}
答案 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");
}