示例#1
0
        /// <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;
        }
示例#2
0
        /// <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);
            }
        }