在游戏开发过程中,有时希望将一些公用的函数在多个地方被重复使用,使用时,通常需要进行new一个对象,再调用其中的函数,此时可以考虑将其定义成一个静态的变量,在游戏中被重复使用。下面是一个在简单的模版类中使用静态变量的例子.
1、unity 模版类的定义,不继承MonoBehaviour类
public class Singleton<T> where T : new()
{
private static T s_instance = default(T);
private static object s_synchObj = new object();
protected Singleton()
{
}
public static T Instance
{
get
{
if (s_instance == null)
{
lock (s_synchObj)
{
if (s_instance == null)
s_instance = new T();
}
}
return s_instance;
}
}
}
2、模版类的使用(继承)
public class PublicUse : Singleton<PublicUse>{
public void Load()
{
}
}
3、继承类的使用
PublicUse.Instance.Load();