Подскажите, почему не могу считать файл json на android? на пк работает идеально! Вот код:\\
Код
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using LitJson; using System.IO;
public class ItemDatabase : MonoBehaviour { public List<Item> database = new List<Item>(); private JsonData itemData; [SerializeField] Text text; void Awake() {
itemData = JsonMapper.ToObject(File.ReadAllText(Application.streamingAssetsPath + "/Items.json")); ConstructDatabase(); text.text = database[1].NAME.ToString(); } public Item FetchItemByID(int id) { for (int i = 0; i < database.Count; i++) { if (database[i].ID == id) return database[i]; } return null; }
void ConstructDatabase() { for (int i = 0; i < itemData.Count; i++) { database.Add(new Item((int)itemData[i]["id"], itemData[i]["name"].ToString(), itemData[i]["description"].ToString(), (int)itemData[i]["price"]));
} } } public class Item { public int ID { get; set; } public string NAME { get; set; } public string DESCRIPTION { get; set; } public int PRICE { get; set; } public Sprite SPRITE { get; set; }
BassPiraT92, из StreamingAssets загрузка файлов на андроиде происходит иначе, тут описано как https://answers.unity.com/questio....id.html. Всё таки я советую для этих целей использовать Resources, потому что StreamingAssets не подходит для хранения таких важных ресурсов, как начальные настройки айтемов, ибо StreamingResources может быть доступна для других программ. Моя команда
BassPiraT92, как бы можно, но вот лучше такие вещи вообще в SerializableObject делать. А это хранится только в ресурсах. А вот всякие спрайты, загрузка которых может быть долгой, наоборот, лучше в стримнг азетс. Моя команда