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

继承MonoBehaviour单例模式基类

手动挂载式继承MonoBehaviour单例模式基类(不推荐)和自动挂载式继承MonoBehaviour单例模式基类(推荐)

一、手动挂载式继承MonoBehaviour单例模式基类(不推荐)

1. 特点

  • 需要手动将脚本挂载到场景物体上
  • 依赖 Awake 初始化 instance
  • 容易破坏单例唯一性

2. 潜在问题

  1. 重复挂载
    • 手动挂载多个脚本
    • 场景切换后,场景里已有挂载对象,可能生成新的实例
    • 代码动态添加多个该脚本也会破坏单例
  2. 构造函数与多线程
    • MonoBehaviour 不允许 new 创建实例,不存在公共构造函数破坏问题
    • 通常不涉及多线程,可忽略

3. 使用示例

using UnityEngine;
public class SingletonMono<T> : MonoBehaviour where T : MonoBehaviour
{private static T instance;public static T Instance => instance;protected virtual void Awake(){instance = this as T; // 必须在 Awake 中初始化}
}

4. 总结

  • 优点:实现简单,直接挂在场景物体上
  • 缺点:容易破坏单例唯一性,不适合大部分项目
  • 推荐度:❌ 不推荐

二、自动挂载式继承MonoBehaviour单例模式基类(推荐)

1. 特点

  • 无需手动挂载脚本
  • 在第一次访问 Instance 时自动创建物体并挂载脚本
  • 保证单例唯一性
  • 支持跨场景持久化(DontDestroyOnLoad

2. 潜在问题

  1. 重复挂载问题
    • 仅在自动创建物体时可能重复挂载
    • 可通过逻辑保证唯一性
  2. 构造函数与多线程
    • 同样不需要担心 new 构造函数问题
    • Unity 主线程环境,通常不涉及多线程

3. 使用示例

using UnityEngine;
public class SingletonAutoMono<T> : MonoBehaviour where T : MonoBehaviour
{private static T instance;public static T Instance{get{if (instance == null){// 动态创建物体GameObject obj = new GameObject(typeof(T).Name);// 为物体添加脚本instance = obj.AddComponent<T>();// 场景切换不销毁DontDestroyOnLoad(obj);}return instance;}}
}

http://www.jsqmd.com/news/68693/

相关文章:

  • 2025深圳英国留学中介有哪些公司
  • 详细介绍:zerotier内网穿透部署(rockylinux部署本地服务器)超详细~~~
  • 2025年不锈钢手轮批发厂家权威推荐榜单:阀门手轮/星型手轮/机床手轮源头厂家精选
  • 服务崩了但日志有10个G,怎么快速找到关键信息
  • 2025年12月零甲醛不锈钢橱柜定制选什么?五款优质品牌推荐指南
  • 淡斑最好的护肤品排名第一,露卡菲娅祛斑套装,改写祛斑美白新历史!
  • 2025程序员躺赢密码:AI辅助编程神器大盘点,代码量狂飙3倍的秘密藏这了
  • 2025年佛山离婚纠纷口碑律所TOP5推荐,有名且信誉好的离
  • 寻找兼顾创意、效率与稳定性的花灯厂商必看
  • 2025年湖南GEO推广-搜索词服务五大靠谱公司推荐,看哪家
  • 2025年高速无刷电机生产厂家权威推荐榜单:微型直流电机/吸尘器无刷电机/家用电器电机实力厂家精选
  • Markdown中可用的HTML警告文本块代码
  • 2025年保温聚氨酯高压发泡机实力厂家推荐,看哪家的产品性价
  • 2025年度砂光辊服务商厂家排名:砂光辊优质厂家与批量定制企
  • 专业闸机租赁源头厂家:稳定供应与可靠保障
  • 2025年风量测试试验台制造厂权威推荐榜单:风量测试设备‌/小型风洞实验设备‌/风压测量装置源头制造厂精选
  • 【PostgreSQL 17】12 DML语句
  • windows下docker desktop中镜像删除后磁盘空间未释放问题解决
  • 实测口碑花灯厂,耐用度数据:高价≠高质,避坑指南出炉
  • 2025年评价高的多功能离子风机测试仪高评价厂家推荐榜
  • Quartz定时任务持久化(服务重启后自动恢复)
  • [免费]基于Python的深度学习豆瓣电影数据可视化+情感分析推荐环境(Flask+Vue+LSTM+scrapy)【论文+源码+SQL脚本】
  • 2025年12月高端托福封闭班机构调研:无老师国际深度解析
  • TortoiseGit小乌龟下载安装教程
  • nim语言要加分号吗
  • 2025年靠谱的文具铁盒品牌厂家排行榜
  • 2025年冬天大棚订做厂家权威推荐榜单:山东大棚‌/新型养殖大棚‌/连栋大棚源头厂家精选
  • 2025年度佛山建筑陶瓷品牌排行榜推荐——广东和陶家居股份有
  • 闸机租赁:如何选择可靠的源头厂家
  • 2025年中国智能财税服务公司TOP5推荐:九洲财务口碑如何