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

Posted avi9111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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<

以上是关于Unity中常用分享多次但又完全没记录非常通用不得不再次分享的自用的单例代码Sigleton in C# and Unity的主要内容,如果未能解决你的问题,请参考以下文章