0

Unity で Oculus Go アプリを作成していますが、txt ファイルを Oculus Storage に保存する方法がわかりません。この Web サイトで提案されている解決策の使用を含め、オンラインで見つけたものはすべて読みましたここここ.

ユーザーがトグル グループのどのボタンを選択したかを記録するテキスト ファイルを作成しようとしています。

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) rootpath が正しく設定されていても、ファイルが表示されない場合があります。Answers.txt を手動で GO に配置し、アプリ内から Answers.txt に何かを書き込み、go を再起動して、ファイルに書き込まれたかどうかを Explorer で再度確認します。このファイルが作成/更新されたことを認識していない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 に答える