您的位置:首页 > 移动开发 > Unity3D

【小松教你手游开发】【unity实用技能】InvalidOperationException: out of sync

2016-06-16 14:53 597 查看
在unity开发中出现这个bug。

在网上查了下是在迭代器中直接修改引起的。c#是不允许你在迭代器中直接修改。

改了一下确实解决。

原本是这样

public void Run()
{
foreach (var item in timerDict)
{
if (null != item.Value)
{
item.Value.Run();
}
}
}


改成这样:

public void Run()
{
//使用迭代器时不能直接在里面修改值,获得引用在做操作
tempTimerList.Clear();
foreach (CTimerItem item in timerDict.Values)
{
if (null != item)
{
tempTimerList.Add(item);

}
}

for(int i =0;i<tempTimerList.Count;i++)
{
tempTimerList[i].Run();
}
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: