androidunity-game-enginestorageoculusoculusgo

Unity and Oculus Go. Read/Write on the internal storage


I'm building a Oculus Go App with Unity. I'm trying to create a txt file in the internal storage of the GO. (The one you see when you plug the HMD to your PC).

I tried those differents paths, none of them seems to work :

If someone knows the correct one that would be cool Thank you !


Solution

  • This is the write function:

    File.WriteAllText(Path.Combine(_directoryPath, fileName), _text, System.Text.Encoding.ASCII);
    

    This is the read function:

    #if PLATFORM_ANDROID && !UNITY_EDITOR
            TextAsset textAsset = new TextAsset(System.IO.File.ReadAllText(filePathAndName));
    #elif UNITY_EDITOR
            TextAsset textAsset = AssetDatabase.LoadAssetAtPath<TextAsset>(filePathAndName);
    #endif
    

    This is the path to use:

    #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");
        }
    

    and the helper function:

    private string MakeFolder(string path, string savedTextsFolder)
    {
        string saveDirectory = path + savedTextsFolder;
        if (!Directory.Exists(saveDirectory))
        {
            Directory.CreateDirectory(saveDirectory);
            Debug.Log("directory created! at: " + path);
        }
        return saveDirectory;
    }