/// <summary> /// Stops all routines and shuts down the manager. /// </summary> public void Shutdown() { if (!m_Initialized) { return; } Fibers.ClearAll(); if (Host != null) { Host.Shutdown(); GameObject.Destroy(Host.gameObject); Host = null; } Log("Shutdown()"); m_Initialized = false; s_Instance = null; }
/// <summary> /// Initializes the Unity Host object. /// </summary> public void Initialize() { if (m_Initialized) { return; } GameObject hostGO = new GameObject("Routine::Manager"); Host = hostGO.AddComponent <RoutineUnityHost>(); Host.Initialize(this); hostGO.hideFlags = HideFlags.HideInHierarchy | HideFlags.DontSaveInEditor; GameObject.DontDestroyOnLoad(hostGO); Log("Initialize() -- Version " + VERSION.ToString()); m_Initialized = true; m_LastProfileLogTime = m_LastCustomUpdateTime = m_LastThinkUpdateTime = Time.unscaledTime; if (Fibers.TotalCapacity == 0) { Fibers.SetCapacity(DEFAULT_CAPACITY); } }