2016-01-20 32 views
0

我正在編輯一個類似於Unity的編輯器。我正在使用WinForms,並且正在以如圖所示的形式嵌入MonoGame窗口here。一切工作正常,但現在我需要添加新的內容到項目中,我需要做到運行時。我已經看過this的例子,但是,首先它使用xna內容構建,其次,當我運行它並加載某些東西時,我似乎無法找到xnb文件。那麼我應該怎麼做才能使用Monogame構建器運行時構建並具有xnb文件?Monogame builduing內容運行時間

回答

0

我沒有做太多與單噴氣但是當我提出一個新的單場比賽的項目,並添加一個System.Windows.Forms的引用,我可以這樣做:

if(_currentKeyboardState.IsKeyDown(Keys.Space) && _previousKeyboardState.IsKeyUp(Keys.Space)) 
{ 
    using (var dialog = new System.Windows.Forms.OpenFileDialog()) 
    { 
     dialog.Filter = "PNG (*.png)|*.png"; 
     if(dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
     { 
      var fileName = System.IO.Path.GetFileName(dialog.FileName); 
      System.IO.File.Copy(dialog.FileName, System.IO.Path.Combine("Content", fileName)); 
      _texture = this.Content.Load<Texture2D>(fileName); 
     } 
    } 
} 

其立即呈現新運行時紋理。

+0

這是因爲Windows版本的Content管道支持加載原始文件(png,jpg,.wav等)。然而,你並沒有構建內容,所以你沒有真正解決OP所面臨的問題。 – Falgantil

+0

由於他使用WinForms,他依賴於windows anywas,不是嗎?所以如果他可能不需要.xnb爲什麼要轉換它們呢? – Bashn

+1

如果您確實需要.xnb文件,請查看此項目http://sourceforge.net/projects/xnbbuilder/或自己查看MSBuild('IBuildEngine'('Microsoft.Build.Framework')和'Microsoft。 Build.Utilities.v4.0'以及'BuildContent'('Microsoft.Xna.Framework.Content.Pipeline'))。 **免責聲明:**仍然依靠windows和xna – Bashn