using System.Collections; using System.Collections.Generic; using UnityEngine; using EvolutStudio.tinysAPI.BaseClasses; namespace EvolutStudio { namespace tinysAPI { public class Application : MonoBehaviour { #region Public Attributes // global instance of the application manager public static Application instance = null; // public access to extension prefab references public GameObject[] Extensions; // public sub class for application notifications (for better readability) public static class Notifications { public static string CHECKFORUPDATES = "application.checkforupdates"; public static string ASKTOINSTALLUPDATES = "application.asktoinstallupdate"; public static string INSTALLUPDATES = "application.installupdates"; } #endregion #region Private Attributes // private attributes #endregion #region Public Functions // public functions public void notify(string notification, BaseClassView refView) { //TODO: wie wird was bekannt gemacht? } #endregion #region Private Functions [RuntimeInitializeOnLoadMethod] static void OnRuntimeMethodLoad() { // notify user, tinysAPI is running and starts the application class Debug.Log("tinysAPI: Starting Application"); //Instantiate the application prefab in the resources folder Instantiate(Resources.Load("ApplicationInstance", typeof(GameObject))); } void Awake() { //Check if instance already exists if (instance == null) { //if not, set instance to this instance = this; } else if (instance != this) { //Then destroy this. This enforces our singleton pattern, meaning there can only ever be one instance of a GameManager. Destroy(gameObject); } //Sets this to not be destroyed when reloading scene DontDestroyOnLoad(gameObject); // instanciate all extension prefabs if(Extensions.Length != 0) { foreach(GameObject extension in Extensions) { Instantiate(extension, gameObject.transform.Find("Extensions").transform); } } } #endregion } } }