Это оператор if в update () имеет 2 цикла for, но он запускается только первый после того, как условие if активировано, и я не знаю почему.
Я строюкод для оптимизации пути в единстве. В настоящее время я должен выяснить путь, который встретил узлы / точки / позиции с определенным массивом позиций, что индекс - это порядок следования пути. Некоторый путь между двумя узлами повторяется, например: от А до В и от В до А считается одним и тем же путем и должен сгущать ширину линии АВ, в конечном итоге отображаемой. Поэтому я попытался отсортировать массив позиций в 2 различных массива для сравнения, если какой-либо из пары узлов (или мы можем сказать, линия) повторяется. И я столкнулся с проблемой в операторе if внутри update ().
Первый должен отсортировать исходный массив для последующего сравнения. Второй только для тестирования, если первый делает свою работу. Сравнения пока нет. Однако после нажатия на кнопку play и выполнения оператора if я вижу все файлы Debug.log в первом, все нормально, сортировка нормальная, а во втором просто ничего не печатается.
Я попытался закомментировать первый, и второй будет работать. Я попытался поставить второй вне оператора if, после него, и, не комментируя первый, второй не запустится. Я попытался поместить второй перед первым, в операторе if будет выполняться второй, а первый - нет.
Так что я думаю, что это может быть какая-то синтаксическая ошибка, или яиспользуя утверждение if неправильно? Пожалуйста, помогите.
if (l > 0)//activate when we choose any preset processes
{
for (int n = 0; n <= positions.Length; n++)//this loop will sort all the pos1 and pos 2 into array for current frame
{
curPos_1 = positions[n];//current position of node 1
curPos_2 = positions[n + 1];
Debug.Log("CURPOS_1 of line number " + n + " is " + curPos_1);
Debug.Log("CURPOS_2 of line number " + n + " is " + curPos_2);
flag[n] = 0;
Pos_1[n] = curPos_1;
Pos_2[n] = curPos_2;
Debug.Log("POS_1 array of line number " + n + " is " + Pos_1[n]);
Debug.Log("POS_2 array of line number " + n + " is " + Pos_2[n]);
}
for (int o = 0; o <= positions.Length; o++)
{
Debug.Log("flag of number " + o + " is " + flag[o]);
}
}
Как описано, все для цикла должно что-то печатать. Не только один из них.