LemonteaのUnity部屋

LemonteaのUnity部屋

Unityの使い方とかです~

Unity Resource内のtextファイルを読み込む

こんにちは。レモンティーです。

以前、音ゲーの作り方で、ファイルの読み込み方を紹介した時、
File.ReadAllText(Filepath)を使いましたよね。
sawalemounity.hatenablog.com


しかし、Android向けにビルドすると…
なぜかこれが動いてくれなかったんですよ。

ファイル読み込みとかビルドの知識がないので
そのへんはまた調べておきますが、

とりあえずResourcesファイルを使うことで
解決できるので、
今回はその方法を書きます。


そもそもResourcesファイルとは…

docs.unity3d.com

ここ↑にあるように、
Resourcesという名前のフォルダを作って
そこに素材を入れておけば
それを簡単に読み込めるというものです。


たとえば

Resourceフォルダ内のMusicフォルダにある
Lemonという名前のAudioClipを取得したい場合は

AudioClip L = Resources.Load<AudioClip>("Music\\Lemon");

のように書きます。

Resources.Load<型>(ファイルパス);

というわけですね。

別の例として
Resourceフォルダ内のMusicフォルダにある
全てのAudioClipを取得したい場合は

AudioClip[] ACs = Resources.LoadAll<AudioClip>("Music");


のように書きます。


で、肝心のテキストファイルですが
これも当然他の素材とまったく同じように取得できます。

困るのは、最初は型がわからないことくらいです笑
テキストファイルの型は「TextAsset」なのですが…知らんわ!!!って感じですよね笑
私はそこでちょっとつまりました笑


例えば
SaveDataという名前のテキストファイルを読み込むときは

TextAsset SaveData = Resources.Load<TextAsset>("SaveData");

となるわけです。

ということで、json形式で書かれたテキストを読み込んで
シリアライズしたいときは

string json = Resources.Load<TextAsset>("SaveData").ToString();

みたいにしてテキストファイルの中身をstring型で受け取ってから
シリアライズすればOKというわけですね。
ちなみにデシリアライズはコチラ↓
sawalemounity.hatenablog.com


ということで、テキストファイルの読み込み方法でした~
これでAndroid向けにビルドしてもパソコンと同じように動きます。

今回はこれでおしまいです。



関連


sawalemounity.hatenablog.com