Unity3D笔记(二)音频加载

public class AudioGlobe : MonoBehaviour {

//1。全局事件注册

//2.单例 全局类  向外提供一个接口

private static AudioGlobe audios;

public static AudioGlobe inistance

{

get {

if (audios == null)

{

//找到工程中带有AudioGlobe的

audios = GameObject.FindObjectOfType(typeof(AudioGlobe)) as AudioGlobe;

//如果没有找到

if (audios == null)

{

//新建一个游戏物体           

      GameObject go = new GameObject();

//为物体添加AudioGloriabe并获取它   

              audios=  go.AddComponent();

            go.name = "AudioGlobe";

}

}

return audios;

}

}

private AudioClip[] audioClips;void Start () { 

    audioClips = Resources.LoadAll("AudioClips");

Debug.Log(audioClips.Length);

}

public void PlayClip(string audioName,GameObject obj,bool isLoop)

{

//音频的数组是否是空值或者没值  如果是 跳出当前方法

if (audioClips == null || audioClips.Length == 0)

return;

//在我们音频数组中找到名称相同的音频 

    AudioClip item = Array.Find(audioClips, p => p.name == audioName);     

//我们是否找到了音频  没找到的话返回 

  if (item == null) return;   

  //将要播放的AudioSource的音频修改为玩家要播放的音频 

  AudioSource source = obj.GetComponent(); 

source.clip = item; 

source.Play(); 

  source.loop = isLoop;            } 

//暂停

public void PauseClip(GameObject obj)    {        obj.GetComponent().Pause();

}

// Update is called once per frame

void Update () {

}

}

//调用

public class TestAudio : MonoBehaviour {

// Use this for initialization

void Start () {

// AudioGlobe.inistance.Test();

AudioGlobe.inistance.PlayClip("BackgroundMusic", gameObject,true);

}

// Update is called once per frame

void Update () {

//暂停

if (Input.GetKeyDown (KeyCode.Space)) {

AudioGlobe.inistance.PauseClip (gameObject);

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容