我正在制作的游戏中一切正常,但现在我开始在我的一些代码上出现NullReferenceException错误。
这里我定义了一个Vector2和一个Texture2D:
Vector2 startButtonPosition;
Texture2D startButton;
然后在Initialise()方法中:
startButtonPosition = new Vector2((graphics.GraphicsDevice.Viewport.Width - startButton.Width) / 2, 150);
当我运行它时,我在startButtonPosition初始化时得到NullReferenceException错误,说明对象引用未设置为对象的实例。但它确实如此。
答案 0 :(得分:0)
graphics
或startButton
或您正在使用的其中一个属性设置为null。
您可以在抛出异常时将鼠标悬停在变量上进行检查(点击中断)
请记住,因为您将startButton
声明为变量,并不意味着将其设置为值。你需要初始化它。 (例如:startButton = Content.Load<Texture2D...
)
答案 1 :(得分:0)
您提供的代码是尝试初始化&#39; startButtonPosition&#39;使用&#39; startButton&#39;。问题是,你永远不会初始化&#39; startButton&#39;因此它是&#39; null&#39;。
@ Pierre-Luc Pineault建议What is a NullReferenceException and how do I fix it?
是正确的这是一个初始化&#39; startButton&#39;的链接。 Texture2D Constructor
我还没有使用过Texture2D,但是我假设它看起来像这样:
Texture2D startButton = new Texture2D(graphics.GraphicsDevice, width, height);