• 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

更多内容

优雅的QSignleton (二) MonoSingleton单例实现的更多相关文章

  1. 优雅的QSignleton (一) Singleton单例实现

    接下来笔者来介绍如何用QSingleton实现一个简单的单例. 代码如下. Singleton.cs namespace QFramework.Example { using UnityEngine; ...

  2. 小菜学习设计模式(二)—单例(Singleton)模式

    前言 设计模式目录: 小菜学习设计模式(一)—模板方法(Template)模式 小菜学习设计模式(二)—单例(Singleton)模式 小菜学习设计模式(三)—工厂方法(Factory Method) ...

  3. Javascript设计模式学习二(单例)

    定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点 普通的单例模式: 使用一个变量来标记当前是否已经为某个类创建过对象,如果是的话,在下一次获取该类的实例时,直接返回之前创建的对象.比如:使用 ...

  4. Java并发编程中的设计模式解析(二)一个单例的七种写法

    Java单例模式是最常见的设计模式之一,广泛应用于各种框架.中间件和应用开发中.单例模式实现起来比较简单,基本是每个Java工程师都能信手拈来的,本文将结合多线程.类的加载等知识,系统地介绍一下单例模 ...

  5. 架构师养成记--6.单例和多线程、ThreadLocal

    一.ThreadLocal 使用wait/notify方式实现的线程安全,性能将受到很大影响.解决方案是用空间换时间,不用锁也能实现线程安全. 来看一个小例子,在线程内的set.get就是thread ...

  6. iOS - 单例传值 (一)

    点击打开链接    iOS - 单例传值 (二) 单例只会对某个类实例化一次/单例类,对单例这个类实例化一次有且仅有一个对象 你单例初始化,只能初始化一次,然后你指向的对象,其实都是指向一个内存地址, ...

  7. python小总结3(异常、单例设计模式)

    一.异常 AttributeError:试图访问一个对象没有的成员[属性和方法] ValueError:值错误,传入了一个不期望的值 ImportError:无法导入模块或者包:基本上路径问题 Ind ...

  8. 【scala】类的定义和单例对象

    一.类的定义 Scala类的定义跟JAVA中类的定义基本是一样的. 示例 class ChecksumAccumulator{ var sum = 0;//Scala默认关键字为public priv ...

  9. 七、单例设计模式共享数据分析、解决、call_once

    一.设计模式大概谈 代码的一些写法,与常规的写法不太一样,程序灵活,维护起来很方便,但是别人接管.阅读代码很痛苦. 用设计模式理念写出来的代码很晦涩.<< head first>&g ...

随机推荐

  1. ArrayList  集合

    ArrayList       集合:很多数据的一个集合       数组:长度不可变.类型单一 集合的好处:长度可以任意改变  类型随便 集合长度都的问题   很多数据的集合数组类型不可变 长度单一 ...

  2. Oracle 查询当前系统时间十分钟之前的记录,时间比较SQL

    select * from t_register r ));

  3. 检测IE浏览器兼容Edge模式及IE11

    document.documentMode || +(navigator.userAgent.match(/MSIE (\d+)/) && RegExp.$1) 判断布尔值

  4. es6变量解构赋值的用途

    这里是我觉得es6解构赋值,在平时我们写js的时候非常有用,而且经常用到的地方,能简化我们的代码,让写代码简介优雅易读; 用途 1.交换变量的值,太方便了这逼,写法不仅简介而且一看就明白 let [x ...

  5. JSP数据库综合练习

    一.问题概述         实现了数据库的增删改查和分页显示.         分页显示:mysql String cmd = "select * from t_user limit &q ...

  6. Android 仿iPhone的日期时间选择器

    可选只选择日期,也可以同时选择时间 只选择日期的情况 同时选择日期和时间的情况 关键代码: findViewById(R.id.selectDateButton).setOnClickListener ...

  7. linux下查看磁盘分区的文件系统格式

    df -T 只可以查看已经挂载的分区和文件系统类型. Filesystem Type 1K-blocks Used Available Use% Mounted on/dev/sda1 ext4 20 ...

  8. C#程序集

    我的理解: 程序集是一个物理上的概念,一个项目生成的exe或者dll都可以叫做一个程序集,internal修饰的内容可以在程序集内可见.

  9. mysql在表的某一位置增加一列、删除一列、修改列名

    如果想在一个已经建好的表中添加一列,可以用以下代码: ) not null; 这条语句会向已有的表中加入一列,这一列在表的最后一列位置.如果我们希望添加在指定的一列,可以用: ) not null a ...

  10. Vue项目中引入mockjs

    前提:创建好的vue项目 前言: 为什么引入mockjs:为了实现前后端分离,开发工作可以异步进行 其他工具:axios 一般的前后端交互过程:前端 --> ajax请求 --> 网络协议 ...