Единство и Oculus Go. Чтение / запись на внутреннем хранилище
Я создаю приложение Oculus Go с Unity. Я пытаюсь создать текстовый файл во внутреннем хранилище GO. (Тот, который вы видите, когда подключаете HMD к вашему ПК).
Я пробовал эти разные пути, ни один из них, кажется, не работает:
- Application.persistentDataPath
- / Шоссе / SDCard / MyFolder
- // хранение / эмулировать /0/Android/ данные / MyFolder.
Если кто-то знает правильный, это было бы здорово Спасибо!
3 ответа
Это функция записи:
File.WriteAllText(Path.Combine(_directoryPath, fileName), _text, System.Text.Encoding.ASCII);
Это функция чтения:
#if PLATFORM_ANDROID && !UNITY_EDITOR
TextAsset textAsset = new TextAsset(System.IO.File.ReadAllText(filePathAndName));
#elif UNITY_EDITOR
TextAsset textAsset = AssetDatabase.LoadAssetAtPath<TextAsset>(filePathAndName);
#endif
Это путь для использования:
#if PLATFORM_ANDROID && !UNITY_EDITOR
SavedTextsCompleteFilePath = Application.persistentDataPath;
// just for debugging and playing in the editor
#elif UNITY_EDITOR
SavedTextsCompleteFilePath = "Assets/Resources";
#endif
// set the base file path, then add the directory if it's not there yet
SavedTextsCompleteFilePath = MakeFolder(SavedTextsCompleteFilePath, "MyGameSaveFolder");
}
и вспомогательная функция:
private string MakeFolder(string path, string savedTextsFolder)
{
string saveDirectory = path + savedTextsFolder;
if (Directory.Exists(saveDirectory) == false)
{
Directory.CreateDirectory(saveDirectory);
Debug.Log("directory created! at: " + path);
}
return saveDirectory;
}
На Oculus вы можете читать и писать в Application.persistentDataPath. И вы можете читать только из Application.streamingAssetsPath.
Я не уверен, что не удалось. Но я могу использовать постоянный DataPath.
Обязательно поставьте знак «/» между каталогом и именем файла.
строка FileName = Application.persistentDataPath + «/» + «file.txt»;