MonoGame ContentManager类?

时间:2016-12-05 10:55:53

标签: c# xna monogame

我最近使用XNA进入了c#,因为我读过不再支持XNA,所以我只是转向MonoGame。有了这个说我在MonoGame中遇到了一个问题,当我尝试在程序中为Sprite类创建一个Load()方法时,我没有使用XNA。我以前在XNA中使用的方法如下:

public void Load(ContentManager content)
{
    content.Load<Texture2D>(AssetName);
}

现在我对MonoGame的问题是我似乎无法在我的Sprite类中引用ContentManager。该类具有我的Game1类所具有的所有'使用Microsoft.Xna.Framework',并且我的代码中没有任何内容是静态的,因此我不明白为什么我不能引用ContentManager,因为当我尝试将其放入时它无法识别Load()。在MonoGame中有不同的方法吗,或者我没有正确引用它?

2 个答案:

答案 0 :(得分:1)

嗯,我没有马上看到这个问题,但我会尽力帮助:

  • 您可能已经尝试过右键单击/解决,但无论如何都值得说出来。

  • 提醒您在Monogame中加载内容与使用XNA不同。您必须使用内置管道工具并在那里传输内容,不要忘记每次上传新纹理时都要构建它。

  • Content.RootDirectory没有变化?

只是进行一些改进,确保你已经做到了。希望这也会帮助你。

答案 1 :(得分:0)

假设您已引用MonoGame.Framework.dll或NuGet包,那么代码没什么特别之处。看起来应该是这样的:

using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;

namespace YourGameProject
{
    public class Sprite
    {
        public string AssetName { get; set; }

        public void Load(ContentManager content)
        {
            content.Load<Texture2D>(AssetName);
        }
    }
}

我刚刚在我自己的项目中编写了该代码并进行了编译。如果它不适合你,那么肯定会出现其他问题。