Перейти к содержимому

Безопаснее клонировать vanilla UI

🧪 Reproduced case studyTerraForge

Это не рецепт для первого мода и не универсальный API клонирования prefab. Он нужен, когда ты уже нашёл конкретный vanilla UI object и хочешь переиспользовать его визуальную hierarchy, не перезапуская вслепую скопированные behavior components.

TerraForge клонировал активную vanilla preset-cell. Скопированный ButtonClickMaptemplate запустил Awake() во время Instantiate и получил NullReferenceException; скопированный EventTrigger также тащил unsafe tooltip behavior.

Рабочий порядок в этом кейсе:

1. временно выключить source vanilla cell
2. клонировать её в inactive состоянии
3. удалить скопированный ButtonClickMaptemplate
4. удалить EventTrigger
5. оставить визуальные Button / Image / layout components
6. поставить свой click handler
7. где нужно — использовать уже инициализированный vanilla flow
8. активировать очищенный clone

Главное правило: визуальная структура ≠ безопасный для повторного lifecycle MonoBehaviour.

Точная hierarchy/version-specific. Подробности: TerraForge safe UI cloning.