ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
接下来笔者来介绍如何用QSingleton实现一个简单的单例。 代码如下。 * Singleton.cs ```c# namespace QFramework.Example { using UnityEngine; class Class2Singleton :QSingleton<Class2Singleton> { private static int mIndex = 0; private Class2Singleton() {} public override void OnSingletonInit() { mIndex++; } public void Log(string content) { Debug.Log("Class2Singleton" + mIndex + ":" + content); } } public class Singleton : MonoBehaviour { private void Start() { Class2Singleton.Instance.Log("Hello World!"); // delete instance Class2Singleton.Instance.Dispose(); // a differente instance Class2Singleton.Instance.Log("Hello World!"); } } } ``` 只需简单继承QSingleton,并声明非public构造方法即可。如果有需要获取单例初始化的时机,则可以选择重载OnSingletonInit方法。 ## 结果: ``` Hello World! Hello World! ``` ## 注意: * 建议在OnSingletonInit方法中进行单例的初始化操作而不是在构造函数中。 * QSingleton.cs只适合实现没有继承其他父类的单例。 ## 相关链接: * [我的框架地址(QFramework)](https://github.com/liangxiegame/QFramework) ## 更多内容 * QFramework 地址:[https://github.com/liangxiegame/QFramework](https://github.com/liangxiegame/QFramework) * QQ 交流群:[623597263](http://shang.qq.com/wpa/qunwpa?idkey=706b8eef0fff3fe4be9ce27c8702ad7d8cc1bceabe3b7c0430ec9559b3a9ce66) * **Unity 进阶小班**: * 主要训练内容: * 框架搭建训练(第一年) * 跟着案例学 Shader(第一年) * 副业的孵化(第二年、第三年) * 权益、授课形式等具体详情请查看[《小班产品手册》](https://liangxiegame.com/master/intro):https://liangxiegame.com/master/intro * 关注公众号:liangxiegame 获取第一时间更新通知及更多的免费内容。 ![](http://file.liangxiegame.com/38eccb55-40b2-4845-93d6-f5fb50ff9492.png)