Unity简单的单例实例

来源:互联网 发布:js除法取整不四舍五入 编辑:程序博客网 时间:2024/06/16 19:50
using System;using System.Collections;using System.Collections.Generic;using UnityEngine;/// <summary>/// 定义端/// </summary>public class AudioGlobe : MonoBehaviour {    //1。全局事件注册    //2.单例 全局类   向外提供一个接口    private static AudioGlobe audios;    public static AudioGlobe inistance    {        get {            if (audios == null)            {                audios = GameObject.FindObjectOfType                    (typeof(AudioGlobe)) as AudioGlobe;                if (audios == null)                {                    GameObject go = new GameObject();                  audios=  go.AddComponent<AudioGlobe>();                  go.name = "AudioGlobe";                }            }            return audios;        }    }    private AudioClip[] audioClips;    void Start () {      audioClips=          Resources.LoadAll<AudioClip>("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<AudioClip>            (audioClips, p => p.name == audioName);        //我们是否找到了音频  没找到的话返回    if (item == null) return;        //将要播放的AudioSource的音频修改为玩家要播放的音频    AudioSource source = obj.GetComponent<AudioSource>();    source.clip = item;    source.Play();    source.loop = isLoop;    }    /// <summary>    /// 暂停    /// </summary>    /// <param name="obj"></param>    public void PauseClip(GameObject obj)    {        obj.GetComponent<AudioSource>().Pause();    }    // Update is called once per frame    void Update () {    }}调用单例public class TestAudio : MonoBehaviour {    void Start () {       // AudioGlobe.inistance.Test();        AudioGlobe.inistance.PlayClip            ("BackgroundMusic", gameObject,true);    }    void Update () {        if (Input.GetKeyDown(KeyCode.Space))            AudioGlobe.inistance.PauseClip(gameObject);    }}
原创粉丝点击