「MonoGameで外部のXNBファイルを読み込む」の版間の差分

編集の要約なし
1行目: 1行目:
[[MonoGame]]で作っている[[ゲーム]]に起動時データ更新を実装し、[[プログラム]]以外の画像や音楽などだけであれば自動更新するようにしたいわけだ。
[[MonoGame]]で作っている[[ゲーム]]に起動時データ更新を実装し、[[プログラム]]以外の画像や音楽などだけであれば自動更新するようにしたいわけだ。[[スマホ]]の[[ゲーム]]によくあるアレである。むしろ[[プログラム]]の細かい部分も[[NLua]]に投げるようにしてしまいたい。
むしろ[[プログラム]]の細かい部分も[[NLua]]に投げるようにしてしまいたい。


そうなると外部から各種[[データ]]を読み込む必要が出てくる。
そうなると外部から各種[[データ]]を読み込む必要が出てくる。
しかしMonoGameで扱う各種データの基本はプログラムに組み込まれた「Content」である。
しかし[[MonoGame]]で扱う各種[[データ]]の基本は[[プログラム]]に組み込まれた「Content」である。


==Xamarin.Android==
== Xamarin.Android ==
[[MonoGame]]のContentManagerクラスの[[ソースコード]]をざっと見た感じ、[[Xamarin.Android]]ではアセット以外の[[ファイル]]へはアクセスできないようだ。
[[MonoGame]][[ソースコード]]をざっと見た感じ、[[Xamarin.Android]]ではContentManagerクラスでアセット以外の[[ファイル]]へはアクセスできないようだ。ContentManagerクラスの[[ソースコード]]をみると幸いにもvirtualやらがチラホラ見受けられ継承してoverrideする前提の構造になっている。なので細かいことは考えずにoverrideしてしまえと考えた。
ContentManagerクラスの[[ソースコード]]をみると幸いにもvirtualやらがチラホラ見受けられ継承してoverrideする前提の構造になっている。
なので細かいことは考えずにoverrideしてしまえ。


ついでに各種パラメータを保存した[[csv]]や[[json]]などのxnb以外の[[ファイル]]も同様の手順で読み込めるように、xnbパーサを経由しない裏口も用意すると捗った。
ついでに各種パラメータを保存した[[csv]]や[[json]]などのxnb以外の[[ファイル]]も同様の手順で読み込めるように、xnbパーサを経由しない裏口も用意すると捗った。
個人的な主な用途としては、[[OpenGL ES]]の[[バーテックスシェーダー]]は書き込みだけで読み出せないため、[[モデル]]とは別に頂点データのcsvファイルを読み込み、それを当たり判定に用いている。


<source lang="csharp">
<source lang="csharp">
96行目: 92行目:
</source>
</source>


==関連項目==
== 関連項目 ==
*[[MonoGame]]
* [[:Category:MonoGame|MonoGameカテゴリ]]


== 参考文献 ==
{{reflist}}
{{stub}}
[[category:MonoGame]]
[[category:MonoGame]]
[[category:Xamarin.Android]]
[[category:Xamarin.Android]]