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()); } } } } }
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); }
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; }