Programming-Design-Patterns.../Assets/Patterns_And_Principles/Patterns/The Singleton Pattern/MonoSingleton/Script/MonoSingleton.cs

21 lines
No EOL
544 B
C#

using UnityEngine;
namespace Patterns_And_Principles.Patterns.The_Singleton_Pattern.MonoSingleton.Script
{
public abstract class MonoSingleton<T> : MonoBehaviour where T : MonoSingleton<T>
{
public static T Instance { get; private set; }
protected virtual void Awake()
{
if (Instance != null && Instance != this)
{
Destroy(gameObject);
return;
}
Instance = (T)this;
DontDestroyOnLoad(gameObject);
}
}
}