Контент ресурсов Unity Streaming не читается в Oculus Quest/Go
Я работаю над проектом, который включает чтение контента из StreamingAssets.
Он отлично работает в движке Unity и в Oculus Rift, но при экспорте apk в Oculus Quest/Go потоковая передача не происходит (тест не загружается).
Кто-нибудь сталкивался с проблемами с доступом к StreamingAsset через приложения Quest / Go? ты решил это?
вещи, которые я тестировал: чтение promissions: external force internal Я проверил logcat через android studio (пусто).
основные функции таковы:
private string getPath()
{
#if UNITY_EDITOR
return Application.streamingAssetsPath;
#elif UNITY_ANDROID
return Application.persistentDataPath;
#elif UNITY_STANDALONE_WIN
return Application.streamingAssetsPath;
#else
return "";
#endif
}
private string[] loadExternal_Question(int qIndex)
{
Debug.Log("External File: " + getPath() + "/Quiz/Q" + qIndex + ".txt");
string[] q_Data = File.ReadAllLines(getPath() + "/Quiz/Q" + qIndex + ".txt");
QuestionTitle_LB.text = q_Data[0].Replace("//n", "\n");
Answer_1.text = q_Data[1].Replace("//n", "\n");
Answer_2.text = q_Data[2].Replace("//n", "\n");
Answer_3.text = q_Data[3].Replace("//n", "\n");
Answer_4.text = q_Data[4].Replace("//n", "\n");
CurrentQ = int.Parse(q_Data[5]);
FeedBack_LB.text = q_Data[6].Replace("//n", "\n");
return q_Data;
}
Я заметил, что проблема может быть вызвана тем, что информация находится в streamingAssets. но как я могу определить persistentDataPath в единстве, чтобы он мог читать оттуда? Или же могут ли приложения Android для Quest / Go читать данные из StreamingAssets?
1 ответ
Содержимое StreaminAssets сжимается внутри APK. Как получить к нему доступ? Если вы хотите открыть текстовый файл, вы можете сделать что-то вроде этого:
string json;
#if UNITY_EDITOR || !UNITY_ANDROID
json = File.ReadAllText(StreamingJsonPath);
#else
// streamingAssets are compressed in android (not readable with File).
WWW reader = new WWW (StreamingJsonPath);
while (!reader.isDone) {}
json = reader.text;
#endif