У меня есть четыре разных элемента Canvas в моей сцене Unity. Это упорядочивает их по интересам, но также повышает производительность, поскольку мне не нужно перестраивать все элементы, если я загрязню один из них. Я хочу создать префабы каждого, чтобы я мог повторно использовать их в игре, а также чтобы в моем файле сцены было меньше элементов (мне еще предстоит выяснить, почему Unity не реорганизует YAML в соответствии с порядком сцены и иерархией , В настоящее время я не вижу причин, и это делает систему управления версиями огромной проблемой).
Итак, мой вопрос: должен ли я включать Canvas в качестве родительского GameObject в префаб, или я должен сделать первый дочерний префаб (см. изображение)? Я вижу две точки зрения:
- С одной стороны, приятно сканировать список элементов в корне сцены, видеть синие объекты и знать, что они автоматически реплицируются между сценами. Кроме того, чем больше объектов хранится в префабе, тем меньше будет загрязнять мой файл YAML.
- С другой стороны, со скриптом Canvas Scalar на родительском элементе размеры внутри префаба будут обновляться каждый раз, когда я меняю разрешение/платформу, и я читал, что всегда нехорошо обновлять их вне режима префаба. Другая проблема заключается в том, что элементы пользовательского интерфейса обычно имеют много внешних ссылок для обновления текста и так далее.