はじめに
前回の記事を読んだ方からすればかなりお久しぶりです。またまた更新が遅くなってしまいました・・・。
前回の日記はこちら
この記事は私がUnityで3DのTPSシューティングゲームを作る過程を残しておくために書いています。
プログラムを組む過程で詰まったところで参考にしたもの等を書いていくので、同じようなことで詰まっている方の助けになればと思います。
作りたいもの
ステージ1が遊べるようになりましたー!!
**特定のアイテム(荷物)を集めてゴール(依頼主の家)まで運ぶ(配達する)**というのを目的としたゲームになっています。
TPSのゲームですが、TPSが苦手な人でも遊べるようになっています。
進歩
今回はスタート画面からゲームが終わってスタート画面に戻ることができるようになるまで作りました。デモ版という形で配布できるところまで来ました。
コード等は自分の苦戦した部分のみ説明します。
進歩動画↓
データのセーブとロード
今回、セーブとロードが必要なデータをtext形式で保存しました。読み込みと書き込みを同じ方法でしたかったので、読み込みにはStreamReaderを使い、書き込みにはStreamWriterを使いました。
苦戦したのは、ゲームとしてビルドした後に読み込みと書き込みを行うには専用のフォルダに入れて、ビルドした後のゲームで読み込めるパスを通さなければならなかった部分です。
読み込むテキストは次のようなデータにしていました。
# ID data1 data2
1 abc あいう
2 def かきく
というように、データの間をタブで区切るようにして1行が1ステージに対応する形式でデータにしていました。
ビルド後のゲームで使えるパスにするためには、データを書き込んだテキストファイルをAssetsフォルダの下に作成したStreamingAssetsフォルダに入れます。そして、プログラムでパスを指定するときはこのようにすることで上手く動作します。
string filePath = Application.dataPath + "/StreamingAssets/" + "データの書き込まれたファイル名.txt"; //テキストファイルのパス
データの書き込みや読み込みはいくつか種類があり用途によってどの方法を使うか選ぶ方が良いと思うので、参考にしたサイトを以下に載せておきます。
おもちゃラボ 【Unity】ファイルの読み込みと書き込み方法3選
今後
今後も改良を重ねて楽しいゲームにしていきたいと思っています。
個人的な区切りとしてゲームとして遊べるようになるまで日記を書き続けようと思っていたので、今回で一区切りとなります。
今後もこの日記を続けるかはわかりませんが、ここまで読んでくださってありがとうございました!