当前位置: 首页 > news >正文

Unity 3d 继承MonoBahaviour的单例

在使用Unity3d开发游戏或做客户端项目时,单例是最常见的模式之一,他简单了类的创建,在代码中可以直接调用。下面是两个例子,代码两种不同类型的单例,一个是基本类的单例基类,不是unity MonoBehaviour的类都继承它,一个是从MonoBehaviour派生的单例基类:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;/// <summary>
/// 游戏单例基类,泛型约束表示T必须是一个类,,且有一个无参的构造方法
/// </summary>
/// <typeparam name="T"></typeparam>
public abstract  class BaseSingleton<T> where T : class,new () { private static T _instance = new();public static T GetInstance() {return _instance;}public static T Instance{get{return _instance;}}
}/// <summary>
/// 继承MonoBahaviour的单例基类,
/// </summary>
/// <typeparam name="T"></typeparam>
public abstract class BaseMonoBehaviourSingleton<T> : MonoBehaviour where T: MonoBehaviour{private static T _instance = null;public static T Instance {get { if(_instance == null){_instance = FindObjectOfType(typeof(T)) as T;if (_instance == null) {GameObject obj = new GameObject();_instance = (T)obj.AddComponent(typeof(T));obj.hideFlags = HideFlags.DontSave;obj.name = typeof(T).Name;DontDestroyOnLoad(obj);}}return _instance;}}}
http://www.lryc.cn/news/458400.html

相关文章:

  • grafana version 11.1.0 设置Y轴刻度为1
  • Elasticsearch的安装与配置
  • win0删除 Windows.old
  • 常见IDE及其编译器的讲解
  • 用SQLyog连接mysql提示2058错误
  • Web集群服务-Nginx
  • 获取时隔半个钟的三天
  • 构建可以ssh连接的容器镜像
  • 数据库中JOIN的用法?
  • java项目之纺织品企业财务管理系统源码(springboot+vue+mysql)
  • C语言 编程练习:解决五个有趣的问题
  • 二、安装vmtools
  • 用echarts画天气预报
  • 如果要存IP地址,用什么数据类型比较好?(java)
  • LinkedList源码解读
  • springboot feign-httpclient 连接池配置
  • 电汽车充电革命:充电桩的过去现在与未来
  • windows server 2019中安装.net framework 3.5功能出错
  • vscode gitlens收费破解
  • IPv 4
  • SQL 注入漏洞 - 学习手册
  • AVLTree 旋转笔记(根据平衡因子插入的公式,贼好理解)
  • STM32(十八):SPI通信
  • Redis持久化机制(RDBAOF详解)
  • 蛋白质结构中pdbx_strand_id和entity_id相互转化
  • 【父子线程传值TransmittableThreadLocal使用踩坑-及相关知识拓展】
  • 03 快乐树
  • springboot+react实现移动端相册(上传图片到oss/ 批量删除/ 查看图片详情等功能)
  • Python、R语言Lasso、Ridge岭回归、XGBoost分析Airbnb房屋数据:旅游市场差异、价格预测|数据分享...
  • Spring Boot驱动的交互式作业管理系统:师生共评功能实现