实例参数:无法将对象转换为自己的类型

时间:2014-04-15 18:31:04

标签: c# build xna visual-studio-2013 monogame

我正在通过 NuGet 软件包创建一个 MonoGame 项目。我从一个空白的项目开始,然后运行" Install-Package MonoGame"在程序包管理器控制台中。之后我复制了所有旧代码,将命名空间更改为新的项目名称,从那时起我就遇到了 Visual Studio 的奇怪构建问题,重启VS或重建后不会消失解决方案。

所有这些都与Vector2个对象有关。我必须创建一个扩展方法来访问Vector2.X,因为VS无法在Vector2内找到X的定义,即使我点击F12它也会直接转到Vector2.X。我必须创建一个静态方法来创建Vector2实例,因为" new Vector2(x,y)"对于需要Vector2个对象作为参数的方法,它是一个无效参数。最后,我有这行代码:

PhysicsBody.Position = Extras.ToSimUnits(new Vector2(value.X, value.Y));

为此,我收到错误"实例参数:无法转换为' Microsoft.Xna.Framework.Vector2'到' Microsoft.Xna.Framework.Vector2'"。这怎么可能呢?我知道我可以继续添加静态方法来做一些简单的事情,这些事情由于某种原因导致构建错误,直到所有的Vector2愚蠢都消失了,但有没有一个可以使这个工作正常的修复?

1 个答案:

答案 0 :(得分:1)

MonoGame很可能引用不同版本的XNA,或者使用相同的命名空间来实现备用实现,以最大限度地减少对最终开发人员的代码影响。

有关方法,请参阅@ayls对此类似问题Monogame Ambiguous Vector2的回答。

实际上,来自@Andrew Russell的答案看起来更具权威Ambiguous reference between MonoGame & Microsoft.XNA.Framework namespaces