unity 加锁单例基类
时间: 2023-09-20 17:13:32 浏览: 179
Unity3D通用单例基类
在 Unity 中,可以通过以下方式实现加锁单例基类:
```csharp
public class Singleton<T> where T : class
{
private static object _lock = new object();
private static T _instance;
public static T Instance
{
get
{
lock (_lock)
{
if (_instance == null)
{
_instance = Activator.CreateInstance(typeof(T), true) as T;
}
return _instance;
}
}
}
protected Singleton() { }
}
```
此基类使用泛型,可以方便地创建任何类型的单例。在 Instance 属性中,使用 lock 语句以确保线程安全。如果 _instance 为 null,则使用 Activator.CreateInstance 创建新对象。注意,创建对象的构造函数必须为受保护或私有,以确保只有单例基类可以创建新实例。
阅读全文