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

传说中有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<T>.m_instance = Activator.CreateInstance<T>();
			    if (SpecSingleton<T>.m_instance != null)
			    {
                    (SpecSingleton<T>.m_instance as SpecSingleton<

猜你喜欢

转载自blog.csdn.net/avi9111/article/details/125359831