设计模式——泛型单例类

游戏中很多管理类都需要写成单例类,每次重复把管理类设置为单例类很繁琐,

这里直接写一个泛型单例类作为模板父类,方便其他需要写成单例类的类直接继承设置为单例类;

using UnityEngine;public class Singleton<T> : MonoBehaviour where T:Singleton<T>
{private static T instance;public static T Instance{get { return instance; }}public static bool IsInitialized{get { return instance != null; }}protected virtual void Init(){if (instance != null) Destroy(gameObject);else instance = (T)this;}protected virtual void Destroy(){if (instance == this) instance = null;}
}

其他要写成单例类的类,可以直接继承Singleton,示例如下:

using UnityEngine;public class GameManager : Singleton<GameManager>
{protected override void Init(){base.Init();if (IsInitialized) Debug.Log("游戏初始化!");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/892107.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用JAVA编写一个简单的小游戏

用Java语言编写一个简单的小游戏。这里是一个非常基础的猜数字小游戏的代码示例。在这个游戏中&#xff0c;程序会随机选择一个1到100之间的整数&#xff0c;玩家需要猜测这个数字是什么。每次猜测后&#xff0c;程序会告诉玩家他们猜的数字是太高了、太低了还是正确。 impor…

加速科技荣获“浙江省企业研究院”认定

近日&#xff0c;浙江省经济和信息化厅公布“2024年认定&#xff08;备案&#xff09;省级企业研发机构名单”。经过多轮严格评审和公示&#xff0c;加速科技荣获“省企业研究院”认定。这是加速科技继获国家级专精特新“小巨人”企业认定荣誉后的又一里程碑。 “浙江省企业研究…

MySQL使用navicat新增触发器

找到要新增触发器的表&#xff0c;然后点击设计&#xff0c;找到触发器标签。 根据实际需要&#xff0c;填写相关内容&#xff0c;操作完毕&#xff0c;点击保存按钮。 在右侧的预览界面&#xff0c;可以看到新生成的触发器脚本

性能测试05|JMeter:分布式、报告、并发数计算、性能监控

目录 一、JMeter分布式 1、应用场景 2、原理 3、分布式相关注意事项 4、分布式配置与运行 二、JMeter报告 1、聚合报告 2、HTML报告 三、并发用户数&#xff08;线程数&#xff09;计算 四、JMeter下载第三方插件 五、性能监控 1、Concurrency Thread Group 线程组…

iOS - 消息机制

1. 基本数据结构 // 方法结构 struct method_t {SEL name; // 方法名const char *types; // 类型编码IMP imp; // 方法实现 };// 类结构 struct objc_class {Class isa;Class superclass;cache_t cache; // 方法缓存class_data_bits_t bits; // 类的方法…

(已开源-AAAI25) RCTrans:雷达相机融合3D目标检测模型

在雷达相机融合三维目标检测中&#xff0c;雷达点云稀疏、噪声较大&#xff0c;在相机雷达融合过程中提出了很多挑战。为了解决这个问题&#xff0c;我们引入了一种新的基于query的检测方法 Radar-Camera Transformer (RCTrans)。具体来说&#xff1a; 首先设计了一个雷达稠密…

Python----Python爬虫(利用bs4、pyquery、xpath爬取电影名和评分)

电影网址电影大全_好看的电影_最新好看的电影_电影排行榜-影视快搜 一、bs4 import requests from fake_useragent import UserAgent from bs4 import BeautifulSoup # 设置URL地址 urlhttp://kan.znds.com/movie/ # 设置请求头 headers{User-Agent:UserAgent().edge} # 发送…

Hbuilder ios 离线打包sdk版本4.36,HbuilderX 4.36生成打包资源 问题记录

1、打包文档地址https://nativesupport.dcloud.net.cn/AppDocs/usesdk/ios.html#%E9%85%8D%E7%BD%AE%E5%BA%94%E7%94%A8%E7%89%88%E6%9C%AC%E5%8F%B7 2、配置应用图标 如果没有appicon文件&#xff0c;此时找到 Assets.xcassets 或者 Images.xcassets(看你sdk引入的启动文件中…

使用 PyTorch 自定义数据集并划分训练、验证与测试集

使用 PyTorch 自定义数据集并划分训练、验证与测试集 在图像分类等任务中&#xff0c;通常需要将原始训练数据进一步划分为训练集和验证集&#xff0c;以便在训练过程中评估模型的性能。下面将详细介绍如何组织数据与注释文件、如何分割训练集和验证集&#xff0c;以及如何基于…

TCP通信原理学习

TCP三次握手和四次挥手以及为什么_哔哩哔哩_bilibili

unity学习13:gameobject的组件component以及tag, layer 归类

目录 1 gameobject component 是unity的基础 1.1 类比 1.2 为什么要这么设计&#xff1f; 2 从空物体开始 2.1 创建2个物体 2.2 给 empty gameobject添加组件 3 各种组件和新建组件 3.1 点击 add component可以添加各种组件 3.2 新建组件 3.3 组件的操作 3.4 特别的…

MYSQL--------什么是存储过程和函数

什么是存储过程和函数 存储过程&#xff1a; 存储过程是一组预编译的 SQL 语句集合&#xff0c;存储在数据库服务器中&#xff0c;可通过名称调用执行。它可以包含数据操作语言&#xff08;DML&#xff09;、数据定义语言&#xff08;DDL&#xff09;、控制流语句等。存储过程主…

计算机网络 (30)多协议标签交换MPLS

前言 多协议标签交换&#xff08;Multi-Protocol Label Switching&#xff0c;MPLS&#xff09;是一种在开放的通信网上利用标签引导数据高速、高效传输的新技术。 一、基本概念 MPLS是一种第三代网络架构技术&#xff0c;旨在提供高速、可靠的IP骨干网络交换。它通过将IP地址映…

探索Facebook的区块链计划:未来社交网络的变革

随着区块链技术的迅速发展&#xff0c;社交网络领域正面临一场深刻的变革。Facebook&#xff0c;作为全球最大且最具影响力的社交平台之一&#xff0c;正在积极探索区块链技术的应用。本文将深入探讨Facebook的区块链计划&#xff0c;分析其潜在的变革性影响&#xff0c;并展望…

十年后LabVIEW编程知识是否会过时?

在考虑LabVIEW编程知识在未来十年内的有效性时&#xff0c;我们可以从几个角度进行分析&#xff1a; ​ 1. 技术发展与软件更新 随着技术的快速发展&#xff0c;许多编程工具和平台不断更新和改进&#xff0c;LabVIEW也不例外。十年后&#xff0c;可能会有新的编程语言或平台…

<代码随想录> 算法训练营-2024.12.31

今日专题&#xff1a;单调栈进阶 今日总结&#xff1a;单调栈的代码写起来感觉还是有点难度&#xff0c;这两道题的解题思路也得好好想一想 42. 接雨水 解法一 &#xff1a;双指针法 class Solution:def trap(self, height: List[int]) -> int:#按列计算当前列上可以接多…

C# async和await

第一种&#xff1a; 多个异步任务按照顺序执行先让一个异步任务start 然后通过ContinueWith方法 在参数函数的表达式里面开启第二个任务如果要有第三个任务 需要在第二个任务ContinueWith方法中开启第三个任务 以此类推 可以实现多个异步任务顺序执行 上面这种方式绘出现地狱回…

Excel 技巧03 - 如何对齐小数位数? (★)如何去掉小数点?如何不四舍五入去掉小数点?

这几个有点儿关联&#xff0c;我都给放到一起了&#xff0c;不影响大家分别使用。 目录 1&#xff0c;如何对齐小数位数&#xff1f; 2&#xff0c;如何去掉小数点&#xff1f; 3&#xff0c;如何不四舍五入去掉小数点&#xff1f; 1&#xff0c;如何对齐小数位数&#xff…

next.js实现SSR入门

Next.js 是一个基于 React 的框架&#xff0c;支持服务端渲染&#xff08;Server-Side Rendering&#xff0c;简称 SSR&#xff09;和静态站点生成&#xff08;Static Site Generation&#xff0c;简称 SSG&#xff09;。SSR 是指在服务端生成 HTML 页面后再发送到浏览器&#…

C++二十三种设计模式之迭代器模式

C二十三种设计模式之迭代器模式 一、组成二、特点三、目的四、缺点五、示例代码 一、组成 抽象聚合类&#xff1a;存储集合元素&#xff0c;声明管理集合元素接口。 具体聚合类&#xff1a;实现管理集合元素接口。 抽象迭代器类&#xff1a;声明访问和遍历聚合类元素的接口。 …