Обновление UniText v3

—

от автора

В этом месяце состоялся релиз новой версии пакета 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 с поддержкой текста и спрайтов.

ссылка на оригинал статьи https://habr.com/ru/articles/1087302/