Unity 3D - 常用设计模式之单例 :
实现方法 :
- 私有成员变量( _instance )存储当前脚本引用 .
共有变量( Instance ) get方法 , 提供给其他类获取当前类的途径 .
注意 :
两个变量都是静态的
作用 :
以下面代码情况为例 , 游戏中只存在一个声音管理脚本 ( AudioManager.cs ) , 其他脚本中可以通过 AudioManager.Instance.PlayMusic(); 这样的方法访问AudioManager .
提供了唯一实例受控访问 .
由于在系统内存中只存在一个对象 , 因此可以节约系统资源 , 对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能 .
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AudioManager : MonoBehaviour {
private static AudioManager _instance;
public static AudioManager Instance {
get { return _instance; }
}
public AudioSource audioSource;
void Awake(){
_instance = this;
}
public void PlayMusic(AudioClip clips){
audioSource.clip = clip;
audioSource.Play ();
}
}