2016-03-15 49 views
0

我將AudioSources作爲播放器對象的子節點,並獲取了我正在使用的腳本。統一 - 爲什麼我不能通過劇本播放我需要的聲音?

所以我實現Audiosources在主類:

public AudioSource good_morning; 
public AudioSource stroke_message; 
public AudioSource citysound; 
public AudioSource silence; 

,然後在空白的start()我試圖讓組件和發揮他們的1。但沒有任何事情發生..你能幫助我嗎?

citysound = GetComponentInChildren<AudioSource>(); 
good_morning = GetComponentInChildren<AudioSource>(); 
stroke_message = GetComponentInChildren<AudioSource>(); 
silence = GetComponentInChildren<AudioSource>(); 
good_morning.Play(); 

回答

0

我懷疑什麼是你沒有在現場分配給您AudioSource音頻剪輯。

我敢肯定的是你不完全理解如何使用GetComponentInChildren<AudioSource>();。它遍歷變換的子節點;在其中一個探測到AudioSource後,它會停止並返回。所以基本上,你所有的變量將被設置爲相同的AudioSource。我建議您從第二個代碼片段中刪除前4行,並手動從Unity編輯器中分配AudioSources,這樣您就可以確保每個代碼都被分配到正確的變量。

+0

特別是由於音源被聲明爲公共變量。 –

+0

謝謝!我不需要使用GetComponentInChildren Pavlos

0

嘗試這種在

void start() 
{ 
AudioSource citysound = GetComponent<AudioSource>(); 
AudioSource good_morning = GetComponent<AudioSource>(); 
AudioSource stroke_message = GetComponent<AudioSource>(); 
AudioSource silence = GetComponent<AudioSource>(); 
good_morning.Play(); 
} 
+0

否我需要刪除此: AudioSource citysound = GetComponent (); AudioSource good_morning = GetComponent (); AudioSource stroke_message = GetComponent (); AudioSource silence = GetComponent (); – Pavlos

相關問題