2015-12-10 3 views
2

Я работаю с единством и имею проблемы с аудио. Вот сценарий, когда пользователь нажимает кнопку, объект падает на землю и уничтожает. При нажатии на кнопку звуковой эффект падения объекта - воспроизведение. И уничтожить, объект снова создает экземпляр, тогда эффект звука щелчка снова воспроизводится. Но когда один объект падает и не сталкивается в это время, пользователь снова нажимает кнопку повторного воспроизведения этой кнопки. Я хочу, чтобы, когда один объект был полностью уничтожен, снова нажмите «Слушать», и звук воспроизводится.
Ошибка воспроизведения звука при нажатии кнопки

Код CubeScript:

public class Cube : MonoBehaviour { 


    Rigidbody2D body; 


    void Start() { 

     body = GetComponent<Rigidbody2D>(); 
     body.isKinematic = true; 
    } 


} 

Код ColliderScript:

public class Ground : MonoBehaviour { 

    private Button bt; 

    public GameObject cube; 

    public AudioSource source; 

    public AudioClip clip; 

    void Start() { 


     bt = GameObject.FindGameObjectWithTag ("Button").GetComponent<Button>(); 

     bt.onClick.AddListener (() => Fall()); 
    } 

    void OnCollisionEnter2D(Collision2D col) { 
     Destroy (col.gameObject); 
     Instantiate (cube,new Vector3(0f,4.19f,0f),Quaternion.identity); 


    } 


    public void Fall(){ 

     GameObject.FindGameObjectWithTag ("Player").GetComponent<Rigidbody2D>().isKinematic = false; 

     source.PlayOneShot(clip); 


    } 


} 

ответ

1
void OnCollisionEnter2D(Collision2D col) { 
    Destroy (col.gameObject); 
    Instantiate (cube,new Vector3(0f,4.19f,0f),Quaternion.identity); 
    isFalling = false; // here 
} 

private bool isFalling = false; // here 
public void Fall() 
{ 
    GameObject.FindGameObjectWithTag ("Player").GetComponent<Rigidbody2D>().isKinematic = false; 
    if(isFalling == false){ 
     source.PlayOneShot(clip); 
     isFalling = true; // here 
    } 
} 

Довольно много, когда вы нажимаете, это вызывает падение, если ничего не падает вниз, звук происходит. При столкновении сбрасывается isFalling. Я не совсем уверен в вашей логике.

Смежные вопросы