Unity中常用分享多次但又完全没记录非常通用不得不再次分享的自用的单例代码Sigleton in C# and Unity

本文分享了作者在Unity中常用的三种单例实现方式:Singleton、MonoSingleton和ScriptableObjectSingleton,重点介绍了自己改良的SpecSingleton,其特点是使用.Inst而非.Instance,提供Dispose方法,并且具有更友好的命名。作者旨在提供安全、简洁的单例模式代码示例。
摘要由CSDN通过智能技术生成

传说中有3种单例方式

  1. Singleton
  2. MonoSingleton
  3. ScriptableObjectSinglton

而前两种非常常见,版本各异

但现在从网上搜索到,都是各种危的版本,所以重新分享一下自用的代码

特色:

  1. 其实最好是.Inst,而不是.Instance(你不觉得很多代码这么长,不合适吗)
  2. 提供抽象的Dispose方法,理论上能提醒程序员注意,但既然都用单例模式了,还担心释放么模式
  3. 名字非一般 Singleton,而是 SpecSingleton
using System;
using UnityEngine;
//为了和普通single区分,所以名字改了。。。。
//这个类的.Init()个人也不是很喜欢用,有点鸡肋
public abstract class SpecSingleton<T> where T : class, new()
{
	private static T m_instance;
	public static T Inst
	{
		get
        {
            if (SpecSingleton<T>.m_instance == null)
		    {
                SpecSingleton<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

avi9111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值