private void InitializationCompleted()
        {
            Loading.QueueAction(() =>
            {
                if (_initializer != null)
                {
                    Object.Destroy(_initializer);
                    _initializer = null;
                }

                if (_container != null)
                {
                    _localizationInstaller = _container.AddComponent<LocalizationInstaller>();
                    _localizationInstaller.InstallationCompleted += LocInstallationCompleted;

                    _assetsInstaller = _container.AddComponent<AssetsInstaller>();
                    _assetsInstaller.InstallationCompleted += AssetsInstallationCompleted;

                    _roadsInstaller = _container.AddComponent<RoadsInstaller>();
                    _roadsInstaller.NewRoads = _newRoads;
                    _roadsInstaller.InstallationCompleted += RoadsInstallationCompleted;
                }
            });
        }
 private void RoadsInstallationCompleted()
 {
     Loading.QueueAction(() =>
     {
         if (_roadsInstaller != null)
         {
             _roadsInstaller.NewRoads = null;
             Object.Destroy(_roadsInstaller);
             _roadsInstaller = null;
         }
     });
 }
        public override void OnReleased()
        {
            base.OnReleased();

            if (_isReleased)
            {
                return;
            }

            if (_initializer != null)
            {
                Object.Destroy(_initializer);
                _initializer = null;
            }

            if (_localizationInstaller != null)
            {
                Object.Destroy(_localizationInstaller);
                _localizationInstaller = null;
            }

            if (_assetsInstaller != null)
            {
                Object.Destroy(_assetsInstaller);
                _assetsInstaller = null;
            }

            if (_roadsInstaller != null)
            {
                Object.Destroy(_roadsInstaller);
                _roadsInstaller = null;
            }

            if (_menusInstaller != null)
            {
                Object.Destroy(_menusInstaller);
                _menusInstaller = null;
            }

            if (_newRoads != null)
            {
                Object.Destroy(_newRoads);
                _newRoads = null;
            }

            if (_container != null)
            {
                Object.Destroy(_container);
                _container = null;
            }

            _isReleased = true;
        }