【北海道大戦】リソースファイルをパッケージ化

使用しているライブラリ、Altseedには、リソースファイルを一つのファイルにパッケージ化するツールが用意されていて、

これを使えば、大量のファイルでかさばることもないし、勝手にデータを書き換えることもできなくなります。

使用する場合は、こんな感じでエンジンに登録するだけ。

            asd.Engine.File.AddRootPackage("hokkaido.pack");

で、フォントやテクスチャ画像は、ソースを変更する必要は無いのですが、

マップデータを記述しているjsonファイルは標準機能で読み出しているので、

これに関してはちょっと細工が必要になります。

        private const string _filename = "hokkaido.json";
        public static MapData Load()
        {
            string str = string.Empty;
            asd.StreamFile stream = asd.Engine.File.CreateStreamFile(_filename);
            List<byte> buffer = new List<byte>();
            stream.Read(buffer, stream.Size);
            string json = Encoding.UTF8.GetString(buffer.ToArray());
            return JsonConvert.DeserializeObject<MapData>(json);
        }

CreateStreamFileでjsonファイルを取り出し、

readメソッドでデータをバイトのリストで取得。

これをjsonに変換するには、さらにbyte配列に変換して、文字列に変換して

これでようやくjsonからオブジェクトに変換出来ます。

めんどくさい。

でも、これだけで動いたからまだマシな方だと思うけど。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください