外部ファイルをスクリプトで読み込む方法をまとめます。Unityのスクリプトから外部ファイルを読み込む方法はいろいろありますが、今回解説する方法はStreamingAssetsフォルダを用いた方法です。そもそもAndroidアプリでCSVファイルを読み込む方法がわからず、調べるのにわりと時間がかかったのでこの記事を書きました。Androidアプリを作りたい方は、この方法を使えば外部ファイルを読み込むことが可能になります。AndroidアプリからCSVやTXTファイルなどの外部ファイルはスクリプトから直接読み込むことができないので注意してください。Bundle化します。Bundleとは何ぞやって方のために簡単に説明しておきます。Bundleについて詳しく知りたい方は各自調べることを推奨します。AssetとはUnityで扱う1つ1つのデータのことです。Cubeゲームオブジェクトや、C#スクリプト、今回読み込む外部ファイルも該当します。直訳でAsset=資産です。BundleとはAssetをまとめたものです。例としては、RPGゲームのエリア用ゲームオブジェクトの集合体や、ストーリーを記録した複数のテキストファイルあたりが想像しやすいでしょう。Bundleの作り方がわからない方は参考にしてください。Bundle化できます。StreamingAssetsを新規作成します。この時フォルダの名前をStreamingAssetsにすることが重要です。StreamingAssetsフォルダはアプリインストール時にプラットフォームごとに固有の場所にそのままインストールされます。BundleをStreamingAssetsフォルダへコピペしていきましょう。Bundleを移動すると元のファイルが移動するため、保存しておきたい場合はエクスプローラー上からコピペしましょう。Unity上ではこんな感じになっていればOK。Bundleたちです。BundleをUnityのスクリプトから読み込みましょう。Bundleのうちquestiontextを読み込みます。questiontextは元はCSVファイルです。新しくC#スクリプト「CsvRead」を作成。短いので全部載せました。//assetBundle内の外部ファイルを読み込む}}}重要なのは以下の3点。Bundleの格納されているStreamingAssetsフォルダを特定するPathを調べてくれる。Application.streamingAssetsPathが利用できるようになります。Bundleは、一度読み込まれた状態だと再度読み込むことができずにエラーが発生してしまいます。Bundleを読み込むSceneを複数回読み込む場合はこのif文が必要になります。Bundleの型で格納されます。Bundle化した元のファイルとして扱えないので、2行目のassetBundle.LoadAsset<>(“読み込みたい外部ファイルの名前”)で元のファイルを読み込みます。読み込みたい外部ファイルの拡張子は記述不要です。Bundle化した元のAssetに適する型をassetBundle.LoadAsset<>()の<>の部分に入れる必要があります。CSVファイル→TextAssetなのでassetBundle.LoadAsset<TextAsset>()となります。あとは読み込んだ外部ファイルの処理を書いていくことができます。お疲れさまでした!以上。最後まで読んでいただきありがとうございました。【unity】ml-agentsv0.6.0で機械学習をしてみたPREV【Unity】AssetBundleの簡単なつくり方【コード不要】NEXT【Unity×デザイン】ボタンの画像を変更して見た目をワンランクアップさせる管理人プロフィール当サイト(your-3d.com)の管理人のゆあーさんと申します。このサイトでは、私がZBrushやunityなどで調べたことを共有出来たらいいなと思い開設しました。読んでくださった皆様のお役に立てたら幸いです。https://your-3d.booth.pm/プロフィールページ作りました。3d管理人のゆあーさんです。生まれは北国、現在は東京に住んでます。趣味はプログラミング、モデリング、あとブログです。このブログに書いている内容ですね。ゲームもたまにしてます。