現在、Xna Content Pipeline 拡張機能を試しています。その実験の中で、読み込みが必要な別の「コンテンツ項目」を含むファイルを読み込もうとしています。例えば:
public class CustomItem
{
public string Name;
public Texture2D Texture;
}
これで、コンテンツ プロセッサで「CustomItem」の新しいインスタンスを作成し、名前フィールドを初期化できます。これは単純な文字列だからです。ただし、コンテンツのコンパイル中にテクスチャ ファイルをロードできません (注: テクスチャは単なる例です。理想的には、他のコンテンツ タイプをロードできるようにしたいと考えています)。
私が探しているのは次のようなものです:
// ... start class ...
public override CustomItem Process(SomeInputFormat input, ContentProcessorContext context)
{
return new CustomItem()
{
Name = input.ItemName,
Texture = context.LoadAsset<Texture2D>(input.ItemTexturePath) // I realise LoadAsset<T>() does not exist - it's an example of what would be ideal
};
}
// ... end class ...
これが実際に可能かどうかは誰にもわかりません。可能であれば、他のコンテンツ アイテムをレイト ロードしたり、バイナリ リーダーとライターを使用して独自のカスタム コンテンツ ロードを作成したりする方法は避けたいと思います。