unity 继承mono的单例基类
时间: 2024-12-17 20:48:32 浏览: 6
Unity3D通用单例基类
Unity引擎中的单例模式通常通过继承MonoBehaviour( Mono 的基础类之一)的单例基类来实现,这个基类通常被称为Singleton MonoBehaviour 或 Singleton Base。例如,你可以创建一个名为SingletonBase的脚本,然后其他所有需要单例模式的类都从它派生。
SingletonBase脚本可能看起来像这样:
```csharp
using UnityEngine;
public abstract class SingletonBase<T> where T : SingletonBase<T>
{
private static T instance;
protected SingletonBase()
{
if (instance != null)
throw new Exception("A single instance of this type is allowed.");
instance = this as T;
}
public static T Instance
{
get { return instance; }
}
// 其他公共方法和属性...
}
// 后续你的游戏类会这样使用:
public class MyClass : SingletonBase<MyClass>
{
// 单例实例...
}
```
在这个例子中,`MyClass`就是具体的单例子类。当你需要获取这个类的唯一实例时,只需要调用 `SingletonBase<MyClass>.Instance`。这种方式保证了在整个 Unity 游戏生命周期内只有一个此类的实例存在,并且可以通过类型参数 `<T>` 来适应不同的单例需求。
阅读全文