在实现游戏对象控制的时候,经常会根据游戏对象的行为加载不同种类的声音,例如人物行走时的脚步声,开门时候的声音,拾取物体的声音等。这就需要动态进行加载,实现方法当然有很多种,这里只是结合我的实际开发,讲解一种比较常用的实现方法。
首先需要建立一个名为Resources的文件夹,并且把需要动态加载的声音文件放到该文件下。
加载脚本函数:
public void Play(string str)
{
AudioClip clip =(AudioClip)Resources.Load(str, typeof(AudioClip));//调用Resources方法加载AudioClip资源
PlayAudioClip(clip);
}
该函数就是根据声音文件名称,进行动态加载和播放声音的。
播放声音的时候需要在游戏对象中添加AudioSource组件,一般在游戏主角对象上面添加该组件并且编写声音控制的脚本,例如当人物行走时在设置行走动画控制过度参数时就可以调用下面的函数PlayAudioClip.
public void PlayAudioClip(AudioClip clip)
{
if (clip== null)
return;
AudioSource source = (AudioSource)gameObject.GetComponent("AudioSource");
if (source == null)
source =(AudioSource)gameObject.AddComponent("AudioSource");
source.clip = clip;
source.minDistance= 1.0f;
source.maxDistance= 50;
source.rolloffMode= AudioRolloffMode.Linear;
source.transform.position =transform.position;
source.Play();
}