protected IEnumerator StartPredownload()
    {
        List <ResourceInfo> list = new List <ResourceInfo>();
        uint mapId = questData.mapId;

        FieldMapTable.FieldMapTableData fieldMapData = Singleton <FieldMapTable> .I.GetFieldMapData(mapId);

        if (fieldMapData != null)
        {
            string stageName = fieldMapData.stageName;
            if (string.IsNullOrEmpty(stageName))
            {
                stageName = "ST011D_01";
            }
            StageTable.StageData stageData = Singleton <StageTable> .I.GetData(stageName);

            if (stageData != null)
            {
                list.Add(new ResourceInfo(RESOURCE_CATEGORY.STAGE_SCENE, stageData.scene));
                list.Add(new ResourceInfo(RESOURCE_CATEGORY.STAGE_SKY, stageData.sky));
                list.Add(new ResourceInfo(RESOURCE_CATEGORY.EFFECT_ACTION, stageData.cameraLinkEffect));
                list.Add(new ResourceInfo(RESOURCE_CATEGORY.EFFECT_ACTION, stageData.cameraLinkEffectY0));
                list.Add(new ResourceInfo(RESOURCE_CATEGORY.EFFECT_ACTION, stageData.rootEffect));
                for (int i = 0; i < 8; i++)
                {
                    list.Add(new ResourceInfo(RESOURCE_CATEGORY.EFFECT_ACTION, stageData.useEffects[i]));
                }
                EnemyTable.EnemyData enemyData = Singleton <EnemyTable> .I.GetEnemyData((uint)questData.enemyID[0]);

                int    bodyId   = enemyData.modelId;
                string bodyName = ResourceName.GetEnemyBody(bodyId);
                string mateName = ResourceName.GetEnemyMaterial(bodyId);
                string animName = ResourceName.GetEnemyAnim(enemyData.animId);
                list.Add(new ResourceInfo(RESOURCE_CATEGORY.ENEMY_MODEL, bodyName));
                if (!string.IsNullOrEmpty(mateName))
                {
                    list.Add(new ResourceInfo(RESOURCE_CATEGORY.ENEMY_MATERIAL, bodyName));
                }
                list.Add(new ResourceInfo(RESOURCE_CATEGORY.ENEMY_ANIM, animName));
                LoadingQueue load_queue = new LoadingQueue(this);
                foreach (ResourceInfo item in list)
                {
                    if (!string.IsNullOrEmpty(item.packageName))
                    {
                        ResourceManager.downloadOnly = true;
                        load_queue.Load(item.category, item.packageName, null, false);
                        ResourceManager.downloadOnly = false;
                        yield return((object)load_queue.Wait());
                    }
                }
            }
        }
    }
Exemplo n.º 2
0
    protected IEnumerator StartPredownload()
    {
        SetActive((Enum)UI.BTN_JOIN, false);
        SetActive((Enum)UI.BTN_CREATE, false);
        SetActive((Enum)UI.BTN_AUTO_MATCHING, false);
        SetActive((Enum)UI.BTN_JOIN_OFF, false);
        SetActive((Enum)UI.BTN_CREATE_OFF, false);
        SetActive((Enum)UI.BTN_AUTO_MATCHING_OFF, false);
        List <ResourceInfo> list = new List <ResourceInfo>();
        List <QuestTable.QuestTableData> targetQuest = QuestTable.GetSameRushQuestData(info.GetQuestData().rushId);

        targetQuest.Remove(info.GetQuestData());
        foreach (QuestTable.QuestTableData item2 in targetQuest)
        {
            uint mapId = item2.mapId;
            FieldMapTable.FieldMapTableData fieldMapData = Singleton <FieldMapTable> .I.GetFieldMapData(mapId);

            if (fieldMapData == null)
            {
                yield break;
            }
            string stageName = fieldMapData.stageName;
            if (string.IsNullOrEmpty(stageName))
            {
                stageName = "ST011D_01";
            }
            StageTable.StageData stageData = Singleton <StageTable> .I.GetData(stageName);

            if (stageData == null)
            {
                yield break;
            }
            list.Add(new ResourceInfo(RESOURCE_CATEGORY.STAGE_SCENE, stageData.scene));
            list.Add(new ResourceInfo(RESOURCE_CATEGORY.STAGE_SKY, stageData.sky));
            if (!string.IsNullOrEmpty(stageData.cameraLinkEffect))
            {
                list.Add(new ResourceInfo(RESOURCE_CATEGORY.EFFECT_ACTION, stageData.cameraLinkEffect));
            }
            if (!string.IsNullOrEmpty(stageData.cameraLinkEffectY0))
            {
                list.Add(new ResourceInfo(RESOURCE_CATEGORY.EFFECT_ACTION, stageData.cameraLinkEffectY0));
            }
            if (!string.IsNullOrEmpty(stageData.rootEffect))
            {
                list.Add(new ResourceInfo(RESOURCE_CATEGORY.EFFECT_ACTION, stageData.rootEffect));
            }
            for (int i = 0; i < 8; i++)
            {
                if (!string.IsNullOrEmpty(stageData.useEffects[i]))
                {
                    list.Add(new ResourceInfo(RESOURCE_CATEGORY.EFFECT_ACTION, stageData.useEffects[i]));
                }
            }
            EnemyTable.EnemyData enemyData = Singleton <EnemyTable> .I.GetEnemyData((uint)item2.enemyID[0]);

            int    bodyId   = enemyData.modelId;
            string bodyName = ResourceName.GetEnemyBody(bodyId);
            string mateName = ResourceName.GetEnemyMaterial(bodyId);
            string animName = ResourceName.GetEnemyAnim(enemyData.animId);
            list.Add(new ResourceInfo(RESOURCE_CATEGORY.ENEMY_MODEL, bodyName));
            if (!string.IsNullOrEmpty(mateName))
            {
                list.Add(new ResourceInfo(RESOURCE_CATEGORY.ENEMY_MATERIAL, bodyName));
            }
            list.Add(new ResourceInfo(RESOURCE_CATEGORY.ENEMY_ANIM, animName));
            if (!string.IsNullOrEmpty(enemyData.baseEffectName))
            {
                list.Add(new ResourceInfo(RESOURCE_CATEGORY.EFFECT_ACTION, enemyData.baseEffectName));
            }
        }
        if (list.Find((ResourceInfo x) => !MonoBehaviourSingleton <ResourceManager> .I.IsCached(x.category, x.packageName)) != null)
        {
            RequestEvent("ASSET_DOWNLOAD", StringTable.Get(STRING_CATEGORY.COMMON_DIALOG, 3000u));
            SetActive((Enum)UI.BTN_JOIN_OFF, true);
            SetActive((Enum)UI.BTN_CREATE_OFF, true);
            SetActive((Enum)UI.BTN_AUTO_MATCHING_OFF, true);
            LoadingQueue load_queue = new LoadingQueue(this);
            foreach (ResourceInfo item3 in list)
            {
                if (!string.IsNullOrEmpty(item3.packageName) && !MonoBehaviourSingleton <ResourceManager> .I.IsCached(item3.category, item3.packageName))
                {
                    ResourceManager.downloadOnly = true;
                    load_queue.Load(item3.category, item3.packageName, null, false);
                    ResourceManager.downloadOnly = false;
                    yield return((object)load_queue.Wait());
                }
            }
        }
        bool pushEnable = true;

        SetActive((Enum)UI.BTN_JOIN, pushEnable);
        SetActive((Enum)UI.BTN_CREATE, pushEnable);
        SetActive((Enum)UI.BTN_AUTO_MATCHING, pushEnable);
        SetActive((Enum)UI.BTN_JOIN_OFF, !pushEnable);
        SetActive((Enum)UI.BTN_CREATE_OFF, !pushEnable);
        SetActive((Enum)UI.BTN_AUTO_MATCHING_OFF, !pushEnable);
    }
Exemplo n.º 3
0
    private IEnumerator LoadStageCoroutine(string id)
    {
        isLoadingStage     = true;
        insideColliderData = null;
        isValidInside      = false;
        UnloadStage();
        Input.get_gyro().set_enabled(false);
        currentStageName = id;
        StageTable.StageData data = null;
        if (!string.IsNullOrEmpty(id))
        {
            if (!Singleton <StageTable> .IsValid())
            {
                yield break;
            }
            data = Singleton <StageTable> .I.GetData(id);

            if (data == null)
            {
                yield break;
            }
            LoadingQueue load_queue   = new LoadingQueue(this);
            AssetBundle  asset_bundle = null;
            EffectObject.wait = true;
            string load_scene_name = data.scene;
            if (ResourceManager.internalMode)
            {
                load_scene_name = $"internal__STAGE_SCENE__{load_scene_name}";
            }
            else if (ResourceManager.isDownloadAssets)
            {
                load_queue.Load(RESOURCE_CATEGORY.STAGE_SCENE, data.scene, null, true);
                yield return((object)load_queue.Wait());

                PackageObject package = MonoBehaviourSingleton <ResourceManager> .I.cache.PopCachedPackage(RESOURCE_CATEGORY.STAGE_SCENE.ToAssetBundleName(data.scene));

                asset_bundle = ((package == null) ? null : (package.obj as AssetBundle));
            }
            AsyncOperation ao = SceneManager.LoadSceneAsync(load_scene_name);
            ResourceManager.enableCache = false;
            LoadObject lo_sky = null;
            if (!string.IsNullOrEmpty(data.sky))
            {
                lo_sky = load_queue.Load(RESOURCE_CATEGORY.STAGE_SKY, data.sky, false);
            }
            ResourceManager.enableCache = true;
            load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, data.cameraLinkEffect);
            load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, data.cameraLinkEffectY0);
            load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, data.rootEffect);
            for (int i = 0; i < 8; i++)
            {
                load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, data.useEffects[i]);
            }
            if (load_queue.IsLoading())
            {
                yield return((object)load_queue.Wait());
            }
            while (!ao.get_isDone())
            {
                yield return((object)null);
            }
            EffectObject.wait = false;
            if (asset_bundle != null)
            {
                asset_bundle.Unload(false);
            }
            if (MonoBehaviourSingleton <SceneSettingsManager> .IsValid())
            {
                stageObject = MonoBehaviourSingleton <SceneSettingsManager> .I.get_transform();

                stageObject.set_parent(base._transform);
            }
            if (lo_sky != null)
            {
                skyObject = ResourceUtility.Realizes(lo_sky.loadedObject, base._transform, -1);
            }
            bool is_field_stage = id.StartsWith("FI");
            if (stageObject != null && is_field_stage && (!MonoBehaviourSingleton <SceneSettingsManager> .IsValid() || !MonoBehaviourSingleton <SceneSettingsManager> .I.forceFogON))
            {
                ChangeLightShader(base._transform);
            }
            cameraLinkEffect   = EffectManager.GetCameraLinkEffect(data.cameraLinkEffect, false, base._transform);
            cameraLinkEffectY0 = EffectManager.GetCameraLinkEffect(data.cameraLinkEffectY0, true, base._transform);
            rootEffect         = EffectManager.GetEffect(data.rootEffect, base._transform);
            if (MonoBehaviourSingleton <SceneSettingsManager> .IsValid())
            {
                MonoBehaviourSingleton <SceneSettingsManager> .I.attributeID = data.attributeID;
                SceneParameter sp = MonoBehaviourSingleton <SceneSettingsManager> .I.GetComponent <SceneParameter>();

                if (sp != null)
                {
                    sp.Apply();
                }
                if (is_field_stage && !MonoBehaviourSingleton <SceneSettingsManager> .I.forceFogON)
                {
                    ShaderGlobal.fogColor     = (MonoBehaviourSingleton <SceneSettingsManager> .I.fogColor = new Color(0f, 0f, 0f, 0f));
                    ShaderGlobal.fogNear      = (MonoBehaviourSingleton <SceneSettingsManager> .I.linearFogStart = 0f);
                    ShaderGlobal.fogFar       = (MonoBehaviourSingleton <SceneSettingsManager> .I.linearFogEnd = 3.40282347E+38f);
                    ShaderGlobal.fogNearLimit = (MonoBehaviourSingleton <SceneSettingsManager> .I.limitFogStart = 0f);
                    ShaderGlobal.fogFarLimit  = (MonoBehaviourSingleton <SceneSettingsManager> .I.limitFogEnd = 1f);
                }
                if (MonoBehaviourSingleton <SceneSettingsManager> .I.saveInsideCollider && MonoBehaviourSingleton <SceneSettingsManager> .I.insideColliderData != null && (MonoBehaviourSingleton <SceneSettingsManager> .I.insideColliderData.minX != 0 || MonoBehaviourSingleton <SceneSettingsManager> .I.insideColliderData.maxX != 0 || MonoBehaviourSingleton <SceneSettingsManager> .I.insideColliderData.minZ != 0 || MonoBehaviourSingleton <SceneSettingsManager> .I.insideColliderData.maxZ != 0))
                {
                    isValidInside = true;
                }
                if (isValidInside)
                {
                    insideColliderData = MonoBehaviourSingleton <SceneSettingsManager> .I.insideColliderData;
                }
            }
        }
        else if (MonoBehaviourSingleton <SceneSettingsManager> .IsValid())
        {
            ShaderGlobal.lightProbe = true;
        }
        ShaderGlobal.lightProbe = (LightmapSettings.get_lightProbes() != null);
        currentStageData        = data;
        if (MonoBehaviourSingleton <SceneSettingsManager> .IsValid())
        {
            WeatherController weatherController = MonoBehaviourSingleton <SceneSettingsManager> .I.weatherController;
            if (cameraLinkEffect != null)
            {
                cameraLinkEffect.get_gameObject().SetActive(!weatherController.cameraLinkEffectEnable);
            }
            if (cameraLinkEffectY0 != null)
            {
                cameraLinkEffectY0.get_gameObject().SetActive(!weatherController.cameraLinkEffectY0Enable);
            }
        }
        isLoadingStage = false;
    }