查看原文
其他

程序丨如何用QSingleton实现一个简单的单例?

2017-11-09 凉鞋 Gad-腾讯游戏开发者平台

介绍如何用QSingleton实现一个简单的单例。

代码如下。


  • Singleton.cs


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方法。


结果:




注意:

  • 建议在OnSingletonInit方法中进行单例的初始化操作而不是在构造函数中。

  • QSingleton.cs只适合实现没有继承其他父类的单例。


----------------------

今日推荐


10月资料包、资料库下载

使用UGUI绘制多边形雷达图

Unity 渲染教程(十一):透明度

实时渲染的圣经!《RTR3》 全书知识点总览


添加小编微信,可享双重福利

1.加入GAD程序猿交流基地

获取行业干货资讯,观看大牛分享直播

2.领取60G独家程序资料,地址在小编朋友圈

包括腾讯内部分享、文章教程、视频教程等全套资料

 

↓长按添加小编GAD苏苏↓

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存