【问题标题】:Sound doesnt play when object collides with collider/ How to play sound and change scene at the same time - unity物体与对撞机碰撞时不播放声音/如何同时播放声音和改变场景 - 统一
【发布时间】:2017-11-23 19:34:27
【问题描述】:

您好,我想在游戏对象与对撞机发生碰撞时播放声音。我为此检查了 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");
    }
}

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    问题出在 start 函数中,因为 start 的 's' 是大写

    替换这个

    void start()

    void Start()

    这将修复空引用异常

    【讨论】:

    • 老实说,这应该是一个评论,除非问题中还有其他问题。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多