单例是一种思想
using UnityEngine;
using System.Collections;
using System.Collections.Generic;//写单例框架需要引入
//单例一般都是控制器Manager,单例之间可以互相的调用。
//泛型里面需要定义限制一下(where t 被实例)
public class SingleScript<T>where T:new() {
/// <summary>
/// 声明单例,并赋值默认值;
/// </summary>
private static T instance = default(T);
public static T GetInstance(){
if (instance == null) {
instance = new T ();
}
return instance;
}
}
public class SimpleSingleTon{
private static SimpleSingleTon instance;//静态实例
public static SimpleSingleTon GetInstance(){//返回这样的实例
//惰性实例化,如果不调用Getinstance,就是不实例化的,不给你分配内存。
//当你调用的时候再去实例化,这样比较优化的节省内存。
if (instance == null) {
instance = new SimpleSingleTon ();
}
return instance;
}
//为了防止其他类去调用这个类生成这个实例
//所以把这个构造函数私有
private SimpleSingleTon(){
}
}
以上是写的单例框架,接下来是如何调用
public class AudioManager:SingleScript<AudioManager>{
public float currentAud;
}
public class Demo{
public Demo(){
AudioManager.GetInstance ().currentAud = 5;
}
}