2017-03-04 40 views
0

當調用播放時,我的.wav聲音文件未播放。聲音文件正在工作,因爲當我在音頻源組件中選擇「播放時喚醒」時,播放聲音文件。如果我打電話給hit.Play(),它也會播放。在開始和更新方法中。但是,它不是在我的OnMouseOver或OnMouseDown方法中播放的;即使他們在完美的工作狀態,否則。對象點擊C#Unity時音頻不播放

我已經做了大量的研究,只是遇到過時的代碼或解決方案,根本無法解決我的問題;所以如果任何人有任何關於我的問題的見解,將不勝感激!

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 

public class clickDissapear : MonoBehaviour { 

public AudioSource hit; 

private void OnMouseDown() 
{ 
    hit.Play(); 
    Destroy(this.gameObject); 
} 

private void OnMouseOver() 
{ 
    if (Input.GetKeyDown(KeyCode.Z)) 
    { 
     hit.Play(); 
     Destroy(this.gameObject); 
    } 

    if (Input.GetKeyDown(KeyCode.X)) 
    { 
     hit.Play(); 
     Destroy(this.gameObject); 
    } 
} 

private void OnBecameInvisible() 
{ 
    Destroy(gameObject); 
    //Play Miss 
} 

void Start() { 
    hit = GetComponent<AudioSource>(); 
} 

void Update() { 

    } 
} 

Here is a screenshot of my setup in Unity.

回答

0

問題是播放聲音,並與的AudioSource對象destoryed。這就是爲什麼你沒有聽到任何聲音。 audioSource被破壞,您只能聽到第一個.001秒的聲音。我建議你使用Destroy(this.gameobject,hit.audioclip.Lenght);或協程。

+0

啊我明白了,這很有道理。我認爲,如果音頻在銷燬之前排隊等待,無論對象的狀態如何,它都會播放整個剪輯。 –

+0

希望2種解決方案中的其中一種可以根據您的需求解決您的問題。如果需要,也可以將audioSource附加到其他對象。也許它是更容易找到的父母 – pasotee