Beispiel #1
0
 public void RemoveAllAdditionalModules()
 {
     for (int i = _additionalModules.Count - 1; i >= 0; i--)
     {
         BaseModule module = _additionalModules[i];
         _additionalModules.RemoveAt(i);
         module.Destroy();
     }
 }
Beispiel #2
0
        public void GotoModule(Type moduleClass, object data = null, Action initComplete = null)
        {
            if (_currentModule != null)
            {
                if (!canGotoSameModule && _currentModule.GetType() == moduleClass)
                {
                    Debug.LogError("Don't goto the same module twice.");
                    return;
                }

                if (_currentModule.isLoading)
                {
                    Debug.LogError("current module is loading");
                    return;
                }
            }

            BaseModule lastModule = _currentModule;

            _currentModule = moduleClass.Assembly.CreateInstance(moduleClass.Name) as BaseModule;
            if (lastModule != null)
            {
                if (lastModule.prepareTime > 0)
                {
                    Engine.Instance.DoAfter(_currentModule.prepareTime, () =>
                    {
                        lastModule.Destroy();
                        lastModule = null;
                    });
                }
                else
                {
                    lastModule.Destroy();
                    lastModule = null;
                }
            }
            _currentModule.Init(data, initComplete);
        }
Beispiel #3
0
        public void RemoveAdditionalModule(Type moduleClass)
        {
            BaseModule module = _additionalModules.Find(m => m.GetType() == moduleClass);

            if (module == null)
            {
                Debug.LogError("Don't remove the not exist addtional module.");
            }
            else
            {
                _additionalModules.Remove(module);
                module.Destroy();

                EventManager.instance.DispatchEvent(this, ModuleManager.ADDITIONALMODULE_REMOVED, moduleClass);
            }
        }