我已经使用Unity 5一年了,直到上周我们想要将IDE更新为5.3.1版本时,一切正常。
现在编译器显示两个错误:
The name `Dictionary' does not exist in the current context.
The name `Items' does not exist in the current context.
都本地化在一个简单的KeyedCollection
中public class CommandProcessQueueCollection : KeyedCollection<int, CommandProcessQueue>
{
public bool TryGetQueue(int id, out CommandProcessQueue queue)
{
if (Dictionary != null)
{
return Dictionary.TryGetValue(id, out queue);
}
foreach (var i in Items)
{
var k = GetKeyForItem(i);
if (Comparer.Equals(id, k))
{
queue = i;
return true;
}
}
queue = default(CommandProcessQueue);
return false;
}
protected override int GetKeyForItem(CommandProcessQueue queue)
{
return queue.Id;
}
}
经过几次尝试后,事情变得更加棘手,因为在安装了5.3.1的5台不同机器上编译完全相同的代码。
嗯,5个中有2个证明编译没有任何错误。
此外,msbuild似乎也没有任何错误地编译代码。
可能在Mono用于编辑的.NetFramework中,机器之间存在差异。
你对这个奇怪的问题有什么看法吗?
PS:我正在添加using System.Collections.ObjectModel
,我在Unity编辑器中的当前API兼容性选项设置为.NET 2.0。
答案 0 :(得分:0)
好的,我的团队解决了。
在那些机器中,没有安装Windows支持编辑器5.3.1f1,因此webplayer的标准模块正在运行,并且几乎没有.NET的API。