private void CallBackLoadInstansingResource(LoadScreeResutType _result, float _progress)
 {
     UpdateLoadUnfo(_result, LevelModules.InstansingResource, _progress);
 }
 private void CallBackInitUI(LoadScreeResutType _result, float _progress)
 {
     UpdateLoadUnfo(_result, LevelModules.UI, _progress);
 }
 private void CallBackLoadResources(LoadScreeResutType _result, float _progress)
 {
     UpdateLoadUnfo(_result, LevelModules.Resouces, _progress);
 }
        private void UpdateLoadUnfo(LoadScreeResutType _result, LevelModules _module, float _progress)
        {
            if (loadScreenInfo == null)
            {
                loadScreenInfo = new LoadScreenInfo(gameControllers.SceneController.CurrentScreen, ScreenType);
            }
            if (IsInitComplite)
            {
                Console.LogWarningFormat(ConsoleFilter.GameController, "Incorrect call UpdateLoadUnfo, IsInitComplite = true: {0}, {1}, {2}", _result, _module, _progress);
                return;
            }
            loadScreenInfo.UpdateInfo(_result, _module, _progress);
            gameControllers.SwichScreenController.CallBackForMainMenuScreen(_result, _module, _progress);

            switch (_module)
            {
            case LevelModules.UI:
                if (_result == LoadScreeResutType.Done)
                {
                    UI = gameControllers.MainUI.ScreenUI as IGameUI;
                    if (UI == null)
                    {
                        Console.LogError(ConsoleFilter.MainController, "Fail Get IMainMenuUI");
                        break;
                    }
                    UI.SetGameControoler(this);
                    UI.EventCreatingTurret     -= SelectObject.CreatingTurret;
                    UI.EventCancelCreateTurret -= SelectObject.CancelCreatingTurret;
                    UI.CreateRobotRequest      -= CreateRobotRequest;
                    UI.CreateTurretRequest     -= CreateTurretRequest;
                    UI.RemoveBuildObjRequest   -= RemoveBuildObjRequest;

                    UI.EventCreatingTurret     += SelectObject.CreatingTurret;
                    UI.EventCancelCreateTurret += SelectObject.CancelCreatingTurret;
                    UI.CreateRobotRequest      += CreateRobotRequest;
                    UI.CreateTurretRequest     += CreateTurretRequest;
                    UI.RemoveBuildObjRequest   += RemoveBuildObjRequest;

                    SelectObject.SelectPlatformForTurret       -= UI.SelectPlatformForTurret;
                    SelectObject.CancelSelectPlatformForTurret -= UI.CancelCreateTurret;

                    SelectObject.SelectPlatformForTurret       += UI.SelectPlatformForTurret;
                    SelectObject.CancelSelectPlatformForTurret -= UI.CancelCreateTurret;
                }
                break;

            case LevelModules.Resouces:
                commandQueue.Enqueue(() =>
                {
                    InstansingResource();
                });
                break;

            default:
                break;
            }
            if (IsInitComplite)
            {
                ulong timeActionId = gameControllers.TimeActionContoller.AddTimeAction((obj) =>
                {
                    WaitStartValues();
                    return(true);
                }, null, 1.0f);
            }
        }