🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Oculus

Oculusは、 仮想現実のハードウェアなどを開発している米IT企業、およびそのVRデバイスのシリーズ。低価格で広い視野角やヘッドトラッキングが特徴のVRヘッドセット「Oculus Rift」を始め、さまざまなVRデバイスがリリースされています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

1回答

7849閲覧

oculus quest 単体でCSVファイルを保存する方法(そのディレクトリの指定方法)

mayamaya1020

総合スコア2

Oculus

Oculusは、 仮想現実のハードウェアなどを開発している米IT企業、およびそのVRデバイスのシリーズ。低価格で広い視野角やヘッドトラッキングが特徴のVRヘッドセット「Oculus Rift」を始め、さまざまなVRデバイスがリリースされています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

1クリップ

投稿2020/12/09 01:46

編集2020/12/09 01:47

前提・実現したいこと

oculus questの6DoF情報を取得し、oculus単体で保存するということをしたいです。
開発はUnityを使用しています。

発生している問題

下記コートにてoculus linkを使用しUnityエディターで再生した場合は6DoF情報はデスクトップにCSVファイルとして保存されるようにはできました。が、それをスタンドアロンにて実現したいため、oculus quest単体でCSVファイルを保存する方法が分かりません。
つまづいているところは、ディレクトリの指定方法だと思うのですが…

csvファイルをデスクトップ上に作成するディレクトリ指定のコード

C#

1//sw = new StreamWriter("C:/Users/mayamaya1020/Desktop/LogDateSaveData.csv", false, Encoding.GetEncoding("Shift_JIS"));

"C:/Users/mayamaya1020/Desktop/LogDateSaveData.csv"
というディレクトリ指定部分をどのように変えたらいいのでしょうか。

試したこと

C#

1string path = Application.persistentDataPath + "./Data/LogDateSaveData.csv"; 2sw = new StreamWriter(path, false, Encoding.GetEncoding("Shift_JIS"));

unityで作った環境をbuild and runし、oculusでプレイします。
と書く方法を海外のサイトで見つけましたがうまくいかず…。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

以下の様なパス指定ができます。

  • "/storage/emulated/0/" …… OculusQuestをWindowsで見た時のルートパス。

  • Application.persistentDataPath …… 永続的な保存先。ゲームのセーブデータなど。

  • Application.temporaryCachePath …… 一時的な保存先。アプリ終了後に消える。

また自由なパスでファイル指定したい場合は、Unityの以下設定によって OculusQuest側でアプリを起動したときに「端末内の写真やファイルへのアクセス許可」を求められるようにする必要があります。

Edit>Project setting>PlayerSetting  OtherSetting   Configration    Write Permission: External(SD Card)

サンプルコード

一時パスへの書き込み、読み込み

C#

1string filePath = Application.persistentDataPath + "/test.txt"; 2 3using(StreamWriter writer = new StreamWriter(filePath, false, System.Text.Encoding.UTF8)) { 4 writer.WriteLine("Hello.File."); 5 writer.WriteLine("line2"); 6} 7 8using (StreamReader reader = new StreamReader(filePath, System.Text.Encoding.UTF8)) { 9 string readText = reader.ReadToEnd(); 10 reader.Close(); 11 // 読み込んだテキストを利用する関数(readText); 12}

指定パスからの読み込み

C#

1string ANDROID_PATH_ROOT = "/storage/emulated/0/"; 2using (StreamReader reader = new StreamReader(ANDROID_PATH_ROOT + "Movies/test.txt", System.Text.Encoding.UTF8)) { 3 string readText = reader.ReadToEnd(); 4 reader.Close(); 5 // 読み込んだテキストを利用する関数(readText); 6}

投稿2020/12/09 02:38

ku__ra__ge

総合スコア4524

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mayamaya1020

2020/12/09 09:00 編集

ご回答ありがとうございます。 string path = "/storage/emulated/0/"; sw = new StreamWriter(path + "LogDateSaveData.csv" , false, Encoding.GetEncoding("Shift_JIS")); 試しにこのように書き換えてみたところ、どうやらCSVファイルは保存されていないようなのですが、何がダメなのでしょうか。 また、永続的な保存先のApplication.persistentDataPath を使用して string path = Application.persistentDataPath + "LogDateSaveData.csv"; sw = new StreamWriter(path, false, Encoding.GetEncoding("Shift_JIS")); と書くと保存自体はされているようですが、パソコンにつないで探してみたところそのファイルを見つけることができませんでした。
ku__ra__ge

2020/12/09 09:12

"/storage/emulated/0/"直下にファイル保存するのは試したことがないのでなんともいえません。 Application.persistentDataPath以下に保存したファイルについては"/storage/emulated/0/Android/data/{アプリのパッケージ名}/files/~"に保存されるはずですが、Windowsのファイルエクスプローラーから表示するとファイル一覧のキャッシュが効いていて追加したファイルが見えないことがありました。 `adb shell ls 《パス》`コマンドやSideQuestのファイルエクスプローラーツールで確認すると作成したファイルをPCから確認できるかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問