A collection of inheritable Singleton scripts for Unity
How to use
Simply inherit any of your scripts from either Singleton<T> or SingletonDontDestroy<T> and that script will automatically inherit it's own instance and be made available as a singleton
Inheriting from Singleton<T> will simply make the object a singleton whereas inheriting from SingletonDontDestroy<T> will ensure the object persists between scenes by adding it to the DontDestroyOnLoad list.
Examples
Inheriting from the given classes
public class ScoreManager : Singleton<ScoreManager>
{
private int score;
public void AddScore(int i)
{
score += i;
}
}
public class ScoreManager : SingletonDontDestroy<ScoreManager>
{
private int score;
public void AddScore(int i)
{
score += i;
}
}
Calling the classes instance from elsewhere in your project
public class Enemy
{
private int scoreForKill = 100;
public void OnKill()
{
ScoreManager.instance.AddScore(scoreForKill);
}
}