Skip to content

Instantly share code, notes, and snippets.

View Moe-Baker's full-sized avatar

Moe-Baker Moe-Baker

View GitHub Profile
@Moe-Baker
Moe-Baker / Init.cs
Last active December 14, 2017 17:27
//gets called on the local instance from the OnGameLoad, will only be called once obviously
void Configure()
{
Debug.Log("Manager Configured, Called Once The Game Loads, Right Before The Scene Load");
SceneManager.sceneLoaded += OnSceneChanged;
}
//listener to scene change event, calls the Init method
private void OnSceneChanged(Scene scene, LoadSceneMode loadMode)
//gets called when the game loads using the argument gets it called before the startup scene is loaded
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
static void OnGameLoad()
{
if (Current)
Current.Configure();
else
throw new NullReferenceException("No Asset Instance Found, Please Make Sure An Asset Instance Exists Within A Resources Folder");
}
[CreateAssetMenu]
public class ManagerScriptableObject : ScriptableObject
{
//variable will hold the instance value so we don't look for it everytime we need to access it
//access the Instance only via the Current Property
static ManagerScriptableObject _current;
public static ManagerScriptableObject Current
{
get
{