2015-01-02 3 views
1

Я делаю 2d-игру, и у нее есть монеты, и когда игрок касается монеты, я пытаюсь сделать монету исчезающей и сделать звук звука. Проблема в том, что монета исчезает, но нет звука ,Как играть в звук при уничтожении

using UnityEngine; 
using System.Collections; 

public class coins : MonoBehaviour { 
    static int coin = 0; 
    AudioClip coinSound; 
    void Start() 
    { 
     coin = 0; 
    } 

void OnTriggerEnter2D(Collider2D other) 
    { 
     if (other.tag == "Player") 
     { 
      coin++; 
      audio.PlayOneShot(coinSound); 
      StartCoroutine(Ding()); 
      Destroy(this.gameObject); 

     } 
    } 
    void OnDisable(){ 
     PlayerPrefs.SetInt ("coin", coin); 

    } 
    IEnumerator Ding(){ 
      yield return new WaitForSeconds (0.4F); 
     } 
} 

ответ

1

Вам необходимо отложить разрушение, чтобы вы могли фактически воспроизводить звук, поскольку они происходят в одном и том же объекте.

void OnTriggerEnter2D(Collider2D other) 
{ 
    if(other.tag == "Player") 
    { 
     coin++; 
     StartCoroutine(Ding()); 
    } 
} 

IEnumerator Ding() 
{ 
    audio.PlayOneShot(coinSound); 
    yield return new WaitForSeconds(5); 
    Destroy(gameObject); 
} 
Смежные вопросы