コンテンツコンパイラを使用しない場合と使用しない場合の長所/短所は何でしょうか。
私はファイルをコンパイルせず、それらを出力ディレクトリにコピーしてから、「XNA」関数ではなく他の関数を使用してそれらをロードすることを好みますContent.Load<>()
。ですから、これが私のやり方で同じように機能するのか、それとも「XNA」のやり方に戻るべきなのか疑問に思っています。
ものをロードするときは、次のような他の関数を使用しますTexture2D.FromStream()
コンテンツコンパイラを使用しない場合と使用しない場合の長所/短所は何でしょうか。
私はファイルをコンパイルせず、それらを出力ディレクトリにコピーしてから、「XNA」関数ではなく他の関数を使用してそれらをロードすることを好みますContent.Load<>()
。ですから、これが私のやり方で同じように機能するのか、それとも「XNA」のやり方に戻るべきなのか疑問に思っています。
ものをロードするときは、次のような他の関数を使用しますTexture2D.FromStream()
コンテンツコンパイラは、コンテンツをクロスプラットフォーム互換にします。つまり、XBox360とPCの両方、さらにはMonoGameを搭載したMacでも使用できます。
PCのみをターゲットにしている場合は、.FromStreamオプションを使用できますが、アーティストが再コンパイルせずにリソースを交換できることを除いて、そうすることによるメリットはありません。
ウィリアムの答え(ここに役立つリンク)に加えてContentManager
、それによってロードされたすべてのリソースの破棄も自動的に処理します。ただし、ContentManager
違いが生じないものを1つだけ使用している場合(ゲームの終了時にリソースの割り当てが解除されるため)。
他の回答に加えて、コンテンツプロセッサは、アセットを.xnbファイルに変換します。これは、ファイルのバイナリ形式であり、サイズが小さくなります(したがって、ユーザーはゲームのダウンロードを高速化し、ハードダイビングのスペースを占有します)。また、content.Load <>()メソッドからxnbファイルをロードすることで、ゲーム内でのロードが速くなります。