質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Unity

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

Q&A

3回答

9944閲覧

Unityで外部ファイル参照するには?

fukkun0412

総合スコア37

Unity

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

0グッド

1クリップ

投稿2016/05/17 15:55

編集2016/05/19 08:35

Unityで外部ファイルを参照したいのです。参照したいファイルがCSV形式のものです。
Unity上(UnityEditor・OSはWindows)やAndroidなどプラットフォーム関係なしに参照したいのです。

Unityで外部ファイルの読み書き(C#)

Application.dataPathやApplication.persistentDataPathの中身がプラットフォームによって変化してしまうことがわかりました。
周りのUnityを触っている人に話を聞くと、CSV形式などのファイルは一度Unityのテキストデータに変換しなければならないと聞きました。この方法もやり方がわかりません。

そこで質問なのですが、プラットフォーム関係なく外部ファイルを参照するプログラムをどのように組めばよいのかわかりません。ですので、どのようにくめばよろしいのでしょうか?よろしければプログラムのソースを記載していただければ幸いです。

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

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

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

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

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

Aoich

2016/05/17 20:05

記載のURLの通りでよいと思いますが、具体的にどう上手くいかないのか書いていただければアドバイスしやすいと思います。
fukkun0412

2016/05/19 08:32

上手くいかなかったところは using (StreamReader sr = new StreamReader(fi.OpenRead(), Encoding.UTF8)){ guitxt = sr.ReadToEnd(); } このソースのfi.OpenReadのところが上手くいかなかったのです。Visual Studio2013内のコードインスペクターでOpenReadの項目がなかったので、上手くいかなかったと思い質問しました。
guest

回答3

0

プラットフォーム関係なくunity相対パス(application.persistentdatapath)を使えば、参照できますよ。

投稿2016/05/26 07:54

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

こちらの記事をご参考にしてみてはいかがでしょうか?
https://qiita.com/WassyPG/items/5e4d3df219bba2a14f81

外部ファイルを操作したいという事であれば、C#ネイティブのプログラムを使うしかありません。
ですのでSystem.IOStreamReaderを使う事でcsv形式のファイルのロードは実現できるかと思います。

投稿2019/06/04 14:41

編集2019/06/04 15:25
marurunn

総合スコア702

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

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

0

質問がモヤッとしていてよくわからないのですが…

>CSV形式などのファイルは一度Unityのテキストデータに変換しなければならないと聞きました。この方法もやり方がわかりません。

指定のファイルをテキストファイルとして読み込んでください。
その読み込んだテキストファイルがCSV形式な書式(体裁)になっているというだけの話しです。
そのテキストファイルをCSV形式で解釈してどう料理するのかはその後自由にして構いません、という状況です。
なので「Unityのテキストデータに変換」するという表現は少しニュアンスが違う気がします。
CSV形式のファイルもただの普通のテキストファイルです。
その中身がCSV形式というルールに従った体裁で記述されているというだけでありUnity専用のテキストデータという物があるわけではありません。

>プラットフォーム関係なく外部ファイルを参照するプログラムをどのように組めばよいのかわかりません。

そもそもファイルを読むだけならプラットフォーム関係ないと思いますが…
問題は「どこにあるファイルを読むのか」では無いですか?
どこにあるファイルを読みたいのですか?
それに従って指定すればいいだけだと思います。
その場所がプラットフォームによって違う場所を指定する事になるのならプラットフォーム別に記載する必要性は出てくるでしょうがdataPathで参照される場所にあるファイルを読めればいい(もちろんその先はプラットフォームによって違う場所ですが)というケースならプログラムを分ける必要もありません。
万が一プラットフォーム毎に別々の処理に分けたいのであれば

c#

1#if UNITY_EDITOR 2 // Unity Editor での処理 3#elif (UNITY_IPHONE || UNITY_IOS) 4 // iPhone(iPad)での処理 5#elif UNITY_ANDROID 6 // Androidでの処理 7#elif UNITY_WEBPLAYER 8 // WebPlayerでの処理 9#elif UNITY_STANDALONE_OSX 10 // スタンドアローン(OSX)版の処理 11#elif UNITY_STANDALONE 12 // スタンドアローン版の処理 13#endif 14 15```のように分けて記載するという方法もあります。 16定義されてる物全ては把握していませんが他に 17UNITY_WP8 18UNITY_BLACKBERRY 19UNITY_WINRT 20UNITY_METRO 21等もあるようです。 22 23 24あと「上手くいかない」だけでは回答しづらいです。 25エラーが出るのならエラーメッセージを、期待した動作と違う結果になるのなら何を期待してどういう結果になったのかを、可能な限り具体的な情報を提供してもらわないとあなたの困っている状況を正確に把握できないのでコメントしにくいです。

投稿2016/05/20 02:37

HiroshiWatanabe

総合スコア2160

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問