Возможно, вы мало что можете сделать, но ...
Иерархии преобразований хранятся в памяти Unity как массивы фиксированного размера , а для переучивания Unity приходится пересчитывать всю измененную иерархию , чтобы перемещать объекты в памяти, чтобы создать достаточно места и затем вставьте новые объекты. На YouTube есть видео-разговор об Unity, если я смогу его найти. Это может звучать как ужасный план со стороны Unity, но это результат другой оптимизации, которая позволяет Unity обрабатывать всю иерархию как линейный список и использовать простые смещения в бэкенде C ++.
Лучше всего сказать Unity: «Эй, этот объект, я хочу дополнительное пространство в его массиве иерархии», достаточное для размещения объектов, которые вы собираетесь в него перемещать. Ключевым моментом здесь является то, что вы должны сделать это как можно раньше. Делать это незадолго до того, как вы начнете переписывать материал, на самом деле не поможет, поскольку Unity все равно будет выполнять эту операцию в этот момент.
Вы можете сделать это, установив значение Transform.hierarchyCapacity
на достаточно большое значение. Тем не менее, мой опыт использования этого свойства заключается в том, что прогнозирование необходимого размера является упражнением в разочаровании. Для того же количества объектов, которые я вставлял, я получал разные желаемые возможности от Unity, и в итоге мне пришлось просто сильно переоценить.