我可能有点麻烦我假设只是一个简单的 错误,但我找不到解决方案,甚至更糟糕的错误, 现在我想要做的是通过循环加载我的文件夹中的所有文件直到最大数达到Unity3D中的循环功能(0 + 1 = 2)?
IEnumerator loadData()
{
Debug.Log (loadNum);
if (File.Exists (Application.persistentDataPath + "/data[" + loadNum + "].octa")) {
BinaryFormatter loadData = new BinaryFormatter();
FileStream dataFile = File.Open (Application.persistentDataPath + "/data[" + loadNum + "].octa", FileMode.Open);
playerData pData = (playerData)loadData.Deserialize (dataFile);
dataFile.Close();
name_O = pData.name;
job_O = pData.job;
difficulty_O = pData.difficulty;
rawAPD = name_O + "/" + job_O.ToString() + "/" + difficulty_O.ToString();
APD = new string[loadNum += 1];
for (var i = 0; i <= loadNum && i < loadNum; i++)
{
if (APD [i] == null)
{
APD [i] = rawAPD;
}
break;
}
yield return new WaitForSeconds (1);
if (loadNum != numOfSaveFile_O)
{
Debug.Log ("meh");
loadNum += 1;
reLoop();
}
}
else
{
if (loadNum != numOfSaveFile_O)
{
loadNum += 1;
reLoop();
}
}
}
void reLoop()
{
StartCoroutine (loadData());
}
现在一切工作的伟大产量事情 数量从0到2 这里我有data[0]
和文件在我的持久性数据路径的情况下跳后如预期
到底是什么问题吗?如果一切按预期工作......你为什么要求帮助? –
你的循环结构似乎...太复杂。为什么你不迭代,直到一个条件为真,并且一路上产生结果,如果这就是你真正想要做的事情?除此之外,你实际要问的东西还不清楚,你的代码引用了实际上并不存在的各种状态 - 你应该考虑创建一个[SSCCE](http://sscce.org/)这表明问题,而不是张贴您的应用程序的这个片段。 –
很确定这是你的问题:'APD = new string [loadNum + = 1]',但你也有'loadNum + = 1;'。顺便说一句,我不知道你可以在数组声明中分配变量,但我只是测试它,它的工作原理。 – Quantic