2016-03-15 68 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

相关问题