Пример #1
0
        public void SetToFixedScenesLevel(OnceForAllParam param)
        {
            _fixedSceneNames = param.FixedScenes;
            _sceneManager    = new FixedScenesManager(this, param);

            RequestForFixedScenes(param.AssetBundleName);
        }
Пример #2
0
        public void SetToWorldCompositionLevel(WorldCompositionParam param, IStreamingGoManager streamingGo)
        {
            _fixedSceneNames = param.FixedScenes;
            _sceneManager    = new StreamingManager(this, streamingGo, SingletonManager.Get <StreamingLevelStructure>().Data,
                                                    param, _fixedSceneNames.Count);

            RequestForFixedScenes(param.AssetBundleName);
        }
Пример #3
0
        public void SetToWorldCompositionLevel(WorldCompositionParam param, IStreamingGoManager streamingGo)
        {
            _fixedSceneNames = param.FixedScenes;
            StreamingLevelStructure streamingLevel = SingletonManager.Get <StreamingLevelStructure>();
            ScenesLightmapStructure lightmap       = SingletonManager.Get <ScenesLightmapStructure>();

            lightmap.ListToDict();
            ScenesIndoorCullStructure indoor = SingletonManager.Get <ScenesIndoorCullStructure>();

            indoor.ListToDict();
            _sceneManager = new StreamingManager(this, streamingGo, streamingLevel.Data,
                                                 lightmap.Data, indoor.Data, param, _fixedSceneNames.Count);

            //RequestForFixedScenes(param.AssetBundleName);
            RequestForFixedScenes(param.PreMapName + "/scene");
        }
Пример #4
0
        public void InitContoller()
        {
            Console.Log(ConsoleFilter.MainController, "Game contoller Init is Start");
            IsDisposed = true;
            if (Main.Instance == null)
            {
                Console.LogError(ConsoleFilter.MainController, "Main is null in InitContoller Game");
                return;
            }
            commandQueue    = new Queue <Action>();
            teams           = new Dictionary <TeamId, NWTeamInfo>();
            gameControllers = Main.Instance;
            gameControllers.ServerSimulator.GameCommandResultResponse -= GameCommandResult;
            gameControllers.ServerSimulator.GameCommandResultResponse += GameCommandResult;
            gameControllers.ServerSimulator.StartGameStateResponse    -= SetStartGameState;
            gameControllers.ServerSimulator.StartGameStateResponse    += SetStartGameState;
            gameControllers.ServerSimulator.UpdateGameState           -= SetGameState;
            gameControllers.ServerSimulator.UpdateGameState           += SetGameState;
            SelectObject = GetComponent <SelectObject>() as ISelectObject;
            if (SelectObject == null)
            {
                Console.LogError(ConsoleFilter.MainController, "Get Component SelectObject is fail");
                return;
            }

            SelectObject.SetGameControoler(this);
            //SelectObject.SelectObjRequest -= SelectObjRequest;
            //SelectObject.SelectObjRequest += SelectObjRequest;
            //SelectObject.SendCommandRequest -= SendCommandRequest;
            //SelectObject.SendCommandRequest += SendCommandRequest;
            SelectObject.SelectBuild -= SelectBuild;
            SelectObject.SelectBuild += SelectBuild;

            UnitController       = new UnitController();
            BuildController      = new BuildController();
            MainPlayerController = new MainPlayerController(this, TeamId.Red);
            MainPlayerController.SendGameCommandEvent -= MainPlayerCommand;
            MainPlayerController.SendGameCommandEvent += MainPlayerCommand;

            UpdateLoadUnfo(LoadScreeResutType.Done, LevelModules.Scene, 1.0f);
            if (!gameControllers.MainUI.SwhichCurrentScreen(ScreenType, CallBackInitUI))
            {
                Console.LogError(ConsoleFilter.MainController, "Game create fail, UI is fail");
                return;
            }

            resourceManager = new SceneResourceManager(gameControllers);


            Dictionary <int, string> prefabs          = new Dictionary <int, string>();
            LevelDescription         levelDescription = null;
            int idLevel = gameControllers.ServerSimulator.GetGameInfo();

            if (idLevel < 0)
            {
                Console.LogError(ConsoleFilter.MainController, "Get Game Info from simulator is fail");
                return;
            }

            if (!gameControllers.GameXml.Levels.TryGetValue(idLevel, out levelDescription) || levelDescription == null)
            {
                Console.LogErrorFormat(ConsoleFilter.MainController, "get levelDescription id fail, level id {0}", idLevel);
                return;
            }
            int id = 0;

            prefabs.Add(id, levelDescription.Path);

            BuildPrefabIds = new Dictionary <BuildType, int>();
            foreach (BuildType type in Enum.GetValues(typeof(BuildType)) as BuildType[])
            {
                if (gameControllers.GameXml.Builds.ContainsKey(type))
                {
                    id++;
                    BuildPrefabIds.Add(type, id);
                    prefabs.Add(id, gameControllers.GameXml.Builds[type].Path);
                }
                else
                {
                    Console.LogErrorFormat(ConsoleFilter.MainController, "Can't get buildinfo for {0}", type);
                }
            }

            TurretPrefabIds = new Dictionary <TurretType, int>();
            foreach (TurretType type in Enum.GetValues(typeof(TurretType)) as TurretType[])
            {
                if (type != TurretType.None)
                {
                    if (gameControllers.GameXml.Turrets.ContainsKey(type))
                    {
                        id++;
                        TurretPrefabIds.Add(type, id);
                        prefabs.Add(id, gameControllers.GameXml.Turrets[type].Path);
                    }
                    else
                    {
                        Console.LogErrorFormat(ConsoleFilter.MainController, "Can't get turretInfo for {0}", type);
                    }
                }
            }

            TurretGhostPrefabIds = new Dictionary <TurretType, int>();
            foreach (TurretType type in Enum.GetValues(typeof(TurretType)) as TurretType[])
            {
                if (type != TurretType.None)
                {
                    if (gameControllers.GameXml.Turrets.ContainsKey(type))
                    {
                        id++;
                        TurretGhostPrefabIds.Add(type, id);
                        prefabs.Add(id, gameControllers.GameXml.Turrets[type].PathGhost);
                    }
                    else
                    {
                        Console.LogErrorFormat(ConsoleFilter.MainController, "Can't get turretInfo for {0}", type);
                    }
                }
            }

            id++;
            TurretPlatformId = id;
            prefabs.Add(TurretPlatformId, gameControllers.GameXml.TurretPlatformPath);

            if (!resourceManager.StartLoadResources(prefabs, CallBackLoadResources))
            {
                Console.LogError(ConsoleFilter.MainController, "Game create fail, LoadResources is fail");
                return;
            }

            IsDisposed = false;
            Console.Log(ConsoleFilter.MainController, "Game contoller Init is Done");
        }