Unity 游戏框架搭建 2017 (十四) 优雅的 QSingleton (二) MonoSingleton单例实现

  • MonoSingleton.cs

    namespace QFramework.Example
    {
      using System.Collections;
      using UnityEngine;
    
      class Class2MonoSingleton : QMonoSingleton<Class2MonoSingleton>
      {
          public override void OnSingletonInit()
          {
              Debug.Log(this.name + ":" + "OnSingletonInit");
          }
    
          private void Awake()
          {
              Debug.Log(this.name + ":" + "Awake");
          }
    
          private void Start()
          {
              Debug.Log(this.name + ":" + "Start");
          }
    
          protected override void OnDestroy()
          {
              base.OnDestroy();
    
              Debug.Log(this.name + ":" + "OnDestroy");
          }
      }
    
      public class MonoSingleton : MonoBehaviour
      {
          private IEnumerator Start()
          {
              var instance = Class2MonoSingleton.Instance;
    
              yield return new WaitForSeconds(3.0f);
    
              instance.Dispose();
          }
      }
    }

    结果:


    三秒之后,单例GameObject消失,并且触发了OnDestroy事件。

    转载请注明地址:凉鞋的笔记:liangxiegame.com

更多内容

原文地址:https://www.cnblogs.com/liangxiegame/p/you-ya-deQSignleton-er-MonoSingleton-dan-li-shi-xi.html