Содержимое Unity Streaming-активов не читается в Oculus Quest / Go - PullRequest
0 голосов
/ 23 сентября 2019

Я работаю над проектом, который включает чтение контента из StreamingAssets.

Он отлично работает в движке Unity и в Oculus Rift, но при экспорте apk в Oculus Quest / Go потоковая передача не происходит (викторина не загружается).

Кто-нибудь сталкивался с проблемами при доступе к StreamingAssets через приложения Quest / Go?Вы решили это?

Вещи, которые я тестировал: чтение заданий: внешняя сила внутренняя Я проверил 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 Ответ

0 голосов
/ 23 сентября 2019

Содержимое 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
...