Skip to content

Instantly share code, notes, and snippets.

@ciwolsey
Last active March 26, 2019 16:38
Show Gist options
  • Save ciwolsey/3bd0189a8bbc76e3f7242b51473ff3f6 to your computer and use it in GitHub Desktop.
Save ciwolsey/3bd0189a8bbc76e3f7242b51473ff3f6 to your computer and use it in GitHub Desktop.
Singleton Scriptable Object (Unity)
using UnityEngine;
// Singleton Scriptable Object
// Rename "OptionsSO" to something more appropriate
public class OptionsSO : ScriptableObject
{
// Scriptable Object Data
public enum Difficulty { Easy, Medium, Hard };
public Difficulty difficulty = Difficulty.Easy;
// Callbacks
private void OnEnable()
{
}
private void OnDisable()
{
}
private void OnDestroy()
{
}
// Singleton pattern
private static OptionsSO _inst;
public static OptionsSO Instance
{
get
{
if (!_inst)
_inst = FindObjectOfType<OptionsSO>();
if (!_inst)
{
_inst = CreateInstance<OptionsSO>();
_inst.hideFlags = HideFlags.DontUnloadUnusedAsset;
}
return _inst;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment