private void LoadFileSync(LoadFileText lft) { string filePath = Path.Combine(Application.streamingAssetsPath, lft.fileName); if (filePath.Contains("://") || filePath.Contains(":///")) { // On some specific platform, StreamingAssets cannot be directly accessed UnityWebRequest www = new UnityWebRequest(filePath); lft.fileText = www.downloadHandler.text; } else { lft.fileText = File.ReadAllText(filePath); } }
private void LoadDataSync() { LoadFileText lft = new LoadFileText(); // Load attacks data lft.fileName = defAttacksFileName; LoadFileSync(lft); AttacksData attacksData = JsonUtility.FromJson <AttacksData>(lft.fileText); foreach (Attack atk in attacksData.attacks) { Data.AllAttacks.Add(atk.id, atk); } // Load defends data lft.fileName = defDefendsFileName; LoadFileSync(lft); DefendsData defendsData = JsonUtility.FromJson <DefendsData>(lft.fileText); foreach (ActionType type in System.Enum.GetValues(typeof(ActionType))) { Data.AllDefendsByType.Add(type, new List <int>()); } foreach (Defend def in defendsData.defends) { Data.AllDefends.Add(def.id, def); Data.AllDefendsByType[def.type].Add(def.id); } // Load results data lft.fileName = defResultsFileName; LoadFileSync(lft); ResultsData resultsData = JsonUtility.FromJson <ResultsData>(lft.fileText); foreach (Result res in resultsData.results) { Data.AllResults.Add(res.id, res); } // Load equipments data lft.fileName = defEquipmentsFileName; LoadFileSync(lft); EquipmentsData equipmentsData = JsonUtility.FromJson <EquipmentsData>(lft.fileText); foreach (Weapon weapon in equipmentsData.weapons) { Sprite sprite = Resources.Load <Sprite>("Sprites/Weapons/" + weapon.id); weapon.sprite = sprite; Data.AllWeapons.Add(weapon.id, weapon); Data.AllInventories.Add(weapon.id, weapon as Inventory); } foreach (Armor armor in equipmentsData.armors) { Sprite sprite = Resources.Load <Sprite>("Sprites/Clothes/" + armor.id); armor.sprite = sprite; Data.AllArmors.Add(armor.id, armor); Data.AllInventories.Add(armor.id, armor as Inventory); } foreach (Accessory accessory in equipmentsData.accessories) { Sprite sprite = Resources.Load <Sprite>("Sprites/Hats/" + accessory.id); accessory.sprite = sprite; Data.AllAccessories.Add(accessory.id, accessory); Data.AllInventories.Add(accessory.id, accessory as Inventory); } // Load materials data lft.fileName = defFoodsFileName; LoadFileSync(lft); FoodsData foodsData = JsonUtility.FromJson <FoodsData>(lft.fileText); foreach (Food food in foodsData.foods) { Data.AllFoods.Add(food.id, food); Data.AllInventories.Add(food.id, food as Inventory); } // Load foods data lft.fileName = defMaterialsFileName; LoadFileSync(lft); MaterialsData materialsData = JsonUtility.FromJson <MaterialsData>(lft.fileText); foreach (Material material in materialsData.materials) { Data.AllMaterials.Add(material.id, material); Data.AllInventories.Add(material.id, material as Inventory); } // Test: Check loading is right Debug.Log("Total Attacks Loaded : " + Data.AllAttacks.Count); Debug.Log("Total Defends Loaded : " + Data.AllDefends.Count); Debug.Log("Total Results Loaded : " + Data.AllResults.Count); Debug.Log("Total Inventories Loaded : " + Data.AllInventories.Count); Debug.Log("Total Weapons Loaded : " + Data.AllWeapons.Count); Debug.Log("Total Armors Loaded : " + Data.AllArmors.Count); Debug.Log("Total Accessories Loaded : " + Data.AllAccessories.Count); Debug.Log("Total Materials Loaded : " + Data.AllMaterials.Count); Debug.Log("Total Foods loaded : " + Data.AllFoods.Count); }