企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
接下来介绍,不通过继承的方式实现单例模式。大家都出去嗨了,而我却在家码代码... 代码如下: * MonoSingletonProperty.cs ```cs namespace QFramework.Example { using UnityEngine; class Class2SignetonProperty : ISingleton { public static Class2SignetonProperty Instance { get { return QSingletonProperty<Class2SignetonProperty>.Instance; } } private Class2SignetonProperty() {} private static int mIndex = 0; public void OnSingletonInit() { mIndex++; } public void Dispose() { QSingletonProperty<Class2SignetonProperty>.Dispose(); } public void Log(string content) { Debug.Log("Class2SingletonProperty" + mIndex + ":" + content); } } public class SingletonProperty : MonoBehaviour { // Use this for initialization void Start () { Class2SignetonProperty.Instance.Log("Hello World!"); // delete current instance Class2SignetonProperty.Instance.Dispose(); // new instance Class2SignetonProperty.Instance.Log("Hello World!"); } } } ``` * 必须要实现 OnSingletonInit()、和 Dispose() 方法。 * 使用这种方式的好处有很多,导出给 Lua 的时候只需简单封装一个 Wrapper 就可以用了,而不用每个父类都进行导出 Lua。而且有的 Lua 插件对泛型支持的不是很好。 ## 结果: ![DraggedImage.png](http://file.liangxiegame.com/84c0ed73-624e-4395-97fd-93564d318e39.png) 转载请注明地址:凉鞋的笔记:[liangxiegame.com](http://liangxiegame.com) ## 更多内容 * 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)