在虚拟现实中,一个项目包好几十G,hero出来都是克隆(Clone)出来的,然而要想从第一视角听到声音,必须把声音源加到hero中,而hero的结构是很复杂的,不能随便动prefab的hero.
此时,可以通过动态加载声音。
1.在场景中,给其一个空物体,在物体上加一个脚本(GameAdd).
private GameObject hero = null;
void Start () {
hero = GameObject.Find("Hero");
hero.AddComponent<SourceAdd>();//SourceAdd是一个脚本名字
}
2.建立一个脚本SourceAdd,不用加到物体上,
AudioSource LoadClip(ref AudioClip clip, string pathName, AudioSource source, AudioClip audioclip)
{
clip = Resources.Load(pathName, typeof(AudioClip)) as AudioClip;//此处必须在项目根建立Resource的文件夹。
source = gameObject.AddComponent<AudioSource>() as AudioSource;
source.clip = clip;
source.pitch = 1f;
source.volume = 1f;
source.playOnAwake = false;
source.loop = false;
return source;
}
private AudioClip clip63 = null;
private AudioSource source63 = null;
void Start()
{
source63 = LoadClip(ref clip63,"63",source63,clip63);//"63",此处我声音件名字是63,声音后缀名可忽略。
}
//之后就可能写播放的代码了!
此时,可以通过动态加载声音。
1.在场景中,给其一个空物体,在物体上加一个脚本(GameAdd).
private GameObject hero = null;
void Start () {
hero = GameObject.Find("Hero");
hero.AddComponent<SourceAdd>();//SourceAdd是一个脚本名字
}
2.建立一个脚本SourceAdd,不用加到物体上,
AudioSource LoadClip(ref AudioClip clip, string pathName, AudioSource source, AudioClip audioclip)
{
clip = Resources.Load(pathName, typeof(AudioClip)) as AudioClip;//此处必须在项目根建立Resource的文件夹。
source = gameObject.AddComponent<AudioSource>() as AudioSource;
source.clip = clip;
source.pitch = 1f;
source.volume = 1f;
source.playOnAwake = false;
source.loop = false;
return source;
}
private AudioClip clip63 = null;
private AudioSource source63 = null;
void Start()
{
source63 = LoadClip(ref clip63,"63",source63,clip63);//"63",此处我声音件名字是63,声音后缀名可忽略。
}
//之后就可能写播放的代码了!