0

我正在使用 Unity 构建 Oculus Go 应用程序,但我不知道如何将 txt 文件保存到 Oculus Storage。我已经阅读了我在网上找到的所有关于它的内容,包括在此处此处使用本网站上提出的解决方案。

我正在尝试创建一个文本文件,该文件记录用户选择了切换组中的哪个按钮。

当我为 PC 构建相同的东西时,代码可以工作,但我在 Oculus Go 中找不到文件。我已经编辑了 OVR android 清单,并根据几个教程制作了一个非常简单的脚本。

任何帮助将不胜感激,谢谢!

using UnityEngine;
using UnityEngine.UI;
using System.Linq;
using System.IO;
public class SubmitandWriteButtonOVR : MonoBehaviour

{
    //GameObject
    public ToggleGroup toggleGroup;

    public void onClick()
    {
        string selectedLabel = toggleGroup.ActiveToggles()
            .First().GetComponentsInChildren<Text>()
            .First(t => t.name == "Label").text;

        //Path of the file
        string path = Application.persistentDataPath + "/Answers.txt";

        //Create file if it doesn't exist
        if (!File.Exists(path))
        {
            File.WriteAllText(path, "Answers");
        }

        //Content of the file Get the label in activated toggles
        string content = "Selected Answers: \n" + System.DateTime.Now + "\n" + selectedLabel;

        //Add some text
        File.AppendAllText(path, content);

    }
}
4

1 回答 1

0

这里有几件事可能是错误:

1)尝试像这样设置你的根路径

rootPath = Application.persistentDataPath.Substring(0, Application.persistentDataPath.IndexOf("Android", StringComparison.Ordinal));

2)即使您的根路径设置正确,该文件也可能不会显示。尝试手动将 Answers.txt 放到您的 GO 中,从您的应用程序内部向 Answers.txt 中写入一些内容,重新启动您的 go 并再次在资源管理器中检查它是否写入了您的文件。我读到它与 Android 文件系统有关,没有意识到这个文件已经创建/更新,所以它没有显示。

3) 确保您通过 PlayerSettings 对 externalSD 具有写入权限

这是我在 Android 上的 StreamWriter 解决方案:

private void WriteLogToFile()
    {
        Debug.Log("Starting to Write Logfile");
        string path = Path.Combine(rootPath, "Logs.txt");

        StreamWriter writer = new StreamWriter(path, true);
        writer.WriteLine("TEST");

        writer.Close();
        Debug.Log("Logging Done");
    }

尝试结合上述所有提示是否可以帮助您实现目标并告诉我。

于 2019-12-11T10:08:16.327 回答