예제 #1
0
        public void OpenModule <T>() where T : BaseModule
        {
            if (_currentModule != null)
            {
                _currentModule.Dispose();
                _currentModule = null;
            }

            foreach (var module in _allModules)
            {
                module.gameObject.SetActive(false);
            }

            var desiredModule = _allModules.OfType <T>().FirstOrDefault();

            if (desiredModule == null)
            {
                Debug.LogError($"Module of type '{typeof(T).Name}' not found");
                return;
            }

            desiredModule.gameObject.SetActive(true);
            desiredModule.Activate(_gameController, _canvas);

            _currentModule = desiredModule;
            desiredModule.OnModuleLoaded();
        }