我正在尝试检查并运行一个方法,直到它成立为止。
public struct Letter
{
public string letter;
}
private void DoStart()
{
UsedIndexes.Clear();
BuildGoodGame();
}
List<Letter> usedLetter = new List<Letter>();
private void BuildGoodGame()
{
usedLetter.Clear();
Letter temp;
for (int i = 0; i < Couch.Length; i++)
{
do
{
couchIndex = CouchNameRandom.getRandom();
Couch[i].setCurrentChildIndex(couchIndex);
MisingLetterScript thisLetter = Couch[i].CurrentChild.GetComponent<MisingLetterScript>();
string s = thisLetter.Letter;
temp = new Letter
{
letter = s
};
} while (UsedNames.Contains(couchIndex) || usedLetter.Contains(temp));
UsedNames.Add(couchIndex);
usedLetter.Add(temp);
}
}
我想两次运行此代码,第一次运行正常,它就完全完美了。第二次,我执行Invoke(“ DoStart”,1f),它不再运行,通常冻结Unity。整个问题出在returnable方法中,该方法检查列表是否包含重复项。 我不明白为什么第一次运行良好,然后再次调用DoStart方法后,它却冻结了。救命!!谢谢。