
В этом месяце состоялся релиз новой версии пакета UniText🔗. Периодически возвращаюсь к этому ассету, проверяю и прицениваюсь на предмет переезда. Делюсь результатами текущего набега.
В этой версии появился миграционный тул, который анализирует проект на TextMeshPro и помогает мигрировать на UniText. К сожалению, не сделал полную миграцию автоматически. Однако вчера уже вышла версия, в которой этот момент должен быть улучшен.
Он заменил все компоненты, все ассеты шрифтов, все сериализуемые ссылки в коде. Но оставил нетронутым API (например, нужно text заменить на Text) и потерял все ссылки на новые компоненты в префабах. Особенно это больно во всяких LocalizeStringEvent. Это решаемо, но требует дополнительных усилий и времени.
Из-за этого тесты на потребление ОЗУ и размеры билда пока не состоялись — в рабочих проектах слишком многое отлетает. А на личных мелких совсем не показательно. Попробую позже вернуться к этому вопросу.
Однако я таки пересобрал несколько сцен и экранов в большом WebGL-проекте. Работает и рендерится хорошо. В этот раз никаких багов в билде не встретил. Но были затупливания рендеринга в редакторе. Сам же редактор прокачали — стало симпатичнее, понятнее и удобнее. Добавили больше эффектов — настраивается всё просто.
Помимо выросшей цены (теперь это уже минимум $70), в Changelog версии🔗 попало огромное кол-во изменений.
Наиболее интересные из них:
-
Анализ Unicode переписан на Burst, что должно сократить задержки на главном потоке в сотни раз. Для WebGL вряд ли актуально, хотя в Unity 6.4, судя по Docs🔗, уже добавили поддержку Burst и многопоточности — но со своими особенностями. Ещё не тестировал.
-
Добавлена поддержка mmap, когда ОС работает с файлом шрифта так, будто он загружен в ОЗУ, но без его реальной полной загрузки. Должна быть заметная экономия ОЗУ.
-
Теперь системные шрифты покрывают все языки мира, а на Android их чтение больше не требует тяжелой
System.Xml. Вес сборки должен быть меньше. -
Текст для загружаемых текстовых документов парсится и рендерится только в тех частях, которые попадают в окно просмотра.
-
Копирование и вставка работают в обе стороны с полным сохранением форматирования (PlainText, HTML, Markdown, Lossless UniText).
-
Улучшена поддержка IME, а это более корректный ввод иероглифов, эмодзи-панелей и комбинированных символов. Также появилась интеграция с системными полями ввода ОС и поддержкой автозаполнения (что полезно для экранов авторизации в онлайн-проектах).
-
Добавлены фильтры Grayscale, Saturation, Invert, Sepia и пр.
-
Добавлено 11 встроенных zero-alloc эффектов: Wave, Glitch, Scramble, Bounce и др.
-
Нативная поддержка пиксельных шрифтов с привязкой к сетке.
-
Поддержка обводок, теней, свечения и глитчей на цветных эмодзи и встроенных спрайтах.
-
Свойства модификаторов стали адресуемыми: их можно менять из кода и анимировать.
-
Добавлен отдельный компонент-секвенсор в Timeline.
-
Текст в мировом пространстве получил поддержку HDRP-освещения, тумана и теней.
-
Прямо в текст теперь можно вставлять
RectTransformиз сцены, и он будет плавно двигаться вместе с версткой текста. -
Добавлен полноценный UI-компонент для
Dropdownс поддержкой текста и спрайтов.
Источник: habr.com