是的,可以加載庫項目中的內容。您可以在Game
類之外創建ContentManager
的實例,並使用它來加載您的內容。
創建ContentManager
的新實例的技巧是兩個構造函數,它們都接受IServiceProvidor
作爲第一個參數的實例。無論您正在創建ContentManager
的哪個課程都可以實現此界面。只有一個你需要從這個接口來實現的方法,那就是:
public object GetService(Type serviceType)
它將由ContentManager
以檢索IGraphicsDeviceService
實例調用。您需要一個可以實現此接口的類,這個接口主要是與設備創建和銷燬有關的事件。還有就是需要實現一個重要的特性,那就是:
public GraphicsDevice GraphicsDevice
我要留下很多這個答案的樣板代碼OUF的,因爲你可以在internetz在別的地方找到。下面的代碼假定你已經初始化的XNA圖形系統和創建該類
public class ImageGenerator : IServiceProvider, IGraphicsDeviceService
{
public GraphicsDevice GraphicsDevice { get; private set; }
public ContentManager ContentManager { get; private set; }
public ImageGenerator(GraphicsDevice device)
{
this.GraphicsDevice = device;
this.ContentManager = new ContentManager(this);
}
public object GetService(Type serviceType)
{
if (serviceType == typeof(IGraphicsDeviceService))
{
return this;
}
return null;
}
public event EventHandler<EventArgs> DeviceCreated;
public event EventHandler<EventArgs> DeviceDisposing;
public event EventHandler<EventArgs> DeviceReset;
public event EventHandler<EventArgs> DeviceResetting;
}
的情況下,之前但是走這路線之前創建一個GraphicsDevice
,我建議你調查繼承Game
並允許XNA框架處理重提升,你可以擔心渲染場景和創建圖像。
Axiom(http://www.axiom3d.net)是一種C#引擎,能夠爲位圖圖像生成3D場景。
嗯,這將是偉大的,我一定會檢查這一點,謝謝你的迴應,並等待樣品! – ShirouWrath