Добавление элемента в List<GameObject>
делает Unity зависшим и не отвечает.
Комментирование строки (которая делает игру неработоспособной, так как она является основным компонентом) делает эту проблему исчезающей.
Окружение проблемы с try { ... } catch (Exception e) { ... }
ничем не отличается.
Журнал редактора печатает только Debug.Log(...)
непосредственно перед ним и ничего более.
Изменение типа StraightDict
на Array или Dict не влияет на проблему.
Существуют трехмерные области, состоящие из прямых игровых объектов, отмеченных Straight
.
В начале
private static List<GameObject> StraightDict = new List<GameObject>();
В void Start() { ... }
for (int i = 0; i < 3; i++) {
InstantiateStraight();
}
А InstantiateStraight()
- это:
private void InstantiateStraight() {
SectionHandler Previous = SectionList[SectionList.Count - 1];
GameObject Straight = Instantiate(WorldObjects["Straight"], Previous.GetNextSectionPosition(false), Previous.GetNextQuaternion());
Straight.transform.SetParent(World.transform, false);
Debug.Log(Straight);
try {
StraightDict.Add(Straight);
} catch (Exception e) {
Debug.LogError(e);
}
SectionHandler SH = Straight.GetComponent<StraightHandler>();
SH.WorldSpaceIndex = SectionList.Count;
SH.SetDirection(Previous);
SectionList.Add(SH);
CurrentWorldLength += 1;
}
Программа работала до 2 дней назад без изменения исходного кода или версии Unity.
Это довольно простая операция, которая выполняется (добавление в список) и должна выполняться без заминки.
Поэтому я спрашиваю, есть ли у кого-нибудь возможное решение моей проблемы.
EDIT
Таким образом, похоже, что моя ошибка возникла из-за того, что копия вставляла сборник из другого проекта через окна таким образом, чтобы не вызывать регенерацию файлов .meta (грязные ссылки).