Безопаснее клонировать vanilla UI
Безопаснее клонировать vanilla UI
Заголовок раздела «Безопаснее клонировать vanilla UI»До использования этого паттерна
Заголовок раздела «До использования этого паттерна»Это не рецепт для первого мода и не универсальный API клонирования prefab. Он нужен, когда ты уже нашёл конкретный vanilla UI object и хочешь переиспользовать его визуальную hierarchy, не перезапуская вслепую скопированные behavior components.
TerraForge клонировал активную vanilla preset-cell. Скопированный ButtonClickMaptemplate запустил Awake() во время Instantiate и получил NullReferenceException; скопированный EventTrigger также тащил unsafe tooltip behavior.
Рабочий порядок в этом кейсе:
1. временно выключить source vanilla cell2. клонировать её в inactive состоянии3. удалить скопированный ButtonClickMaptemplate4. удалить EventTrigger5. оставить визуальные Button / Image / layout components6. поставить свой click handler7. где нужно — использовать уже инициализированный vanilla flow8. активировать очищенный cloneГлавное правило: визуальная структура ≠ безопасный для повторного lifecycle MonoBehaviour.
Точная hierarchy/version-specific. Подробности: TerraForge safe UI cloning.