РЕДАКТИРОВАТЬ 02 апреля 2019. С помощью Jambla я почти уверен, что это не ограничение или ошибка UnityWebRequest, так как теперь я знаю, что тот же код, который я использую в своем проекте, работает для Jambla.Поскольку код в порядке, я думаю, что есть только два доступных решения: 1. Проблема заключается в сочетании версии Android / устройства.Я попробую на другом устройстве, как только смогу.2. В настройках сборки есть настройки для моего проекта, которые не позволяют моей игре копировать файлы из streamingAssetsPath после метода Start (я могу подтвердить, что это не после запуска, потому что, если я пытаюсь включить игровой объект после запуска, и у этого объекта есть скрипт, которыйпопробуйте сделать копию в методе «Пуск», он все равно будет работать).
Если кто-нибудь знает, какой параметр отвечает за это поведение, ответьте на этот вопрос.Если вы испытываете такое же поведение на версии Android и / или устройства, скажите, пожалуйста, какое устройство / версия.
ОРИГИНАЛЬНЫЙ ВОПРОС.Я знаю, что для чтения из streamingAssetsPath на Android мне нужно использовать UnityWebRequest Get from streamingAssetsPath и выдавать return unitywebrequest.SendWebRequest () в сопрограмме.Я также проверяю, является ли платформа Android, потому что на ПК мне не нужно использовать UnityWebRequest.Обычно я копирую файл json из streamingAssetsPath в persistentDataPath и работаю оттуда (поскольку я могу создавать и изменять файлы на ПК и Android / iOS на persistentDataPath).Моя проблема заключается в том, что чтение работает только на метод Start (или сопрограммы на метод Start).Я не знаю почему, но когда я пытаюсь прочитать файлы из streamingAssetsPath во время выполнения на Android (например, в обновлении или в методе, вызываемом из кнопки), я не могу этого сделать.Я хотел бы знать, если это ограничение Android / Unity или я могу решить его.
Мой код выглядит примерно так (этот код только для части Android):
string fileUrlPath = Path.Combine(Application.streamingAssetsPath, "myjsonfile.json");
UnityWebRequest www = UnityWebRequest.Get(fileUrlPath);
yield return www.SendWebRequest(); //this is where the Coroutine fail if not on Start method
после этого я обычно использую File.WriteAllBytes, чтобы скопировать мой json в persistentDataPath.
Как только я узнаю, является ли это ограничением, я все равно смогу продолжить (я могу обойти это, скопировав файл наВ конце концов, метод Start ... Главная проблема состояла в том, чтобы узнать об этом), но если я могу сделать это, делая что-то, чего я не знаю, я хотел бы знать, как это сделать.