使用unity和c#以及当我尝试这些行时
using System.Xml.Linq;
我收到此错误
类型或命名空间名称
Linq' does not exist in the namespace
System.Xml'。你错过了装配参考吗?
所以我通过大量搜索在线发现,Linq可能会导致问题,您需要在MonoDevelop中手动添加引用。所以我在那里添加了一个引用(右键单击解决方案窗格中的References,单击Edit References并浏览System.Xml.Linq)
仍然没有运气,
有什么想法吗?
答案 0 :(得分:2)
答案 1 :(得分:0)
您无法手动修改monodevelop(或visual studio)解决方案或项目。因为它们是由Unity生成的。即使您修改它,Unity也可以在重新生成解决方案文件时覆盖您的更改。
您无法使用某些命名空间的原因是在Unity项目设置中选择的.net / mono版本。
在本文档http://docs.unity3d.com/Documentation/Manual/class-PlayerSettings.html
中搜索“API兼容级别”来电者,停止修改生成的代码文件。这是2013年!
答案 2 :(得分:0)
来自this帖子,我发现Unity默认不支持.NET 3.5(这是使用Linq所必需的)。在Xtro所说的设置中,你只能选择.NET 2.0。相反,您需要将所需的.dll文件拖放到Unity中,就像纹理一样。有点hackish,但它的工作原理。再一次,就像Xtro所说,没有理由来编辑MonoDevelop设置。它们对最终编译没有影响。
编辑:请参阅Xtro的替代解决方案的答案。他能够通过将API兼容级别更改为.NET 2.0(而非子集)来使Linq工作。
编辑2:我刚刚从Unity 4.1更新到4.2,并且出现了Linq定义两次的错误。通过删除.dll,我解决了错误。注意我还在使用.NET 2.0 Subset。看起来他们默认添加了Linq支持。