Exemple #1
0
    /// <summary>
    /// 构建游戏初始化数据
    /// </summary>
    private void StructGameInitData(GameObject root)
    {
        if (null == m_lstGameInitDatas)
        {
            m_lstGameInitDatas = new List <GameInitData>();
        }
        m_lstGameInitDatas.Clear();

        //1、网络初始化
        GameInitData gameInitData = GameInitData.Create(GameInitDataType.Net, "网络初始化", (progressCallback, data) =>
        {
            //网络初始化
            NetService.Instance.Init();
            progressCallback.Invoke(data, 1);
        });

        m_lstGameInitDatas.Add(gameInitData);

        //2、品质设置

        gameInitData = GameInitData.Create(GameInitDataType.Quality, "品质设置", (progressCallback, data) =>
        {
            //品质设置
            QualitySettings.pixelLightCount = 3;
            QualitySettings.SetQualityLevel((int)QualityLevel.Good);
            progressCallback.Invoke(data, 1f);

            if (SystemInfo.systemMemorySize < 1024)
            {
                QualitySettings.shadows = ShadowQuality.Disable;
            }
        }, 30);
        m_lstGameInitDatas.Add(gameInitData);



        //3、配置表设置
        gameInitData = GameInitData.Create(GameInitDataType.Table, "配置表设置", (progressCallback, data) =>
        {
            // 配置表路径设置
            Table.SetDataPath("common/tab/");
            float totalSubProgress   = 0;
            Action <float> subAction = (subProgress) =>
            {
                totalSubProgress = 0.8f * subProgress;
                progressCallback.Invoke(data, totalSubProgress);
            };
            // 加载配置表
            GameTableManager.Instance.LoadTable(subAction);
            GameTableManager.Instance.LoadGloabalConst();
            progressCallback.Invoke(data, 1);
        }, 50);
        m_lstGameInitDatas.Add(gameInitData);



        //5、游戏环境初始化
        gameInitData = GameInitData.Create(GameInitDataType.GameEnvironment, "游戏环境初始化", (progressCallback, data) =>
        {
            // 设置特效加载回调
            EffectLoad effectLoad = new EffectLoad();
            Engine.RareEngine.Instance().SetEffectLoad(effectLoad);
            // 镜头bloom效果
            CameraBloomEffect cameraBloom = new CameraBloomEffect();
            Engine.RareEngine.Instance().SetCameraBloom(cameraBloom);

            progressCallback.Invoke(data, 0.2f);
            //剧情
            SequencerManager.Instance().Init();
            AppleSceneMaterial.Instance();

            progressCallback.Invoke(data, 0.4f);
            // 实体消息缓存
            EntityCreator.Instance().Init();
            progressCallback.Invoke(data, 0.6f);
            // 游戏逻辑初始化
            ClientGlobal.Instance().Init();
            progressCallback.Invoke(data, 0.8f);
            ////生成数据管理器
            //DataManager.Instance.Create();
            //TipsManager.Instance.Initialize();


            progressCallback.Invoke(data, 1);
        }, 20);
        m_lstGameInitDatas.Add(gameInitData);

        //6、本地数据初始化
        gameInitData = GameInitData.Create(GameInitDataType.DataManager, "本地数据初始化", (progressCallback, data) =>
        {
            //本地数据初始化
            float totalSubProgress   = 0;
            Action <float> subAction = (subProgress) =>
            {
                totalSubProgress = 0.99f * subProgress;
                progressCallback.Invoke(data, totalSubProgress);
            };
            DataManager.Instance.Create(subAction);
            TipsManager.Instance.Initialize();

            progressCallback.Invoke(data, 1);
        }, 30);
        m_lstGameInitDatas.Add(gameInitData);

        //4、GVoice初始化
        gameInitData = GameInitData.Create(GameInitDataType.GVoice, "GVoice初始化", (progressCallback, data) =>
        {
            //GVoice初始化
            GVoiceManger.Instance.InitGvoice();
            progressCallback.Invoke(data, 1);
        });
        m_lstGameInitDatas.Add(gameInitData);
    }