Emoji в Unity
Обновлено 09.11.2021
Можно использовать готовый пакет для работы с эмоджи. Отличие в том, что не нужно создавать шрифт, спрайты будут браться из атласа.
Как добавить поддержку эмоджи в Unity? К сожалению, решения из коробки нет. Но есть самый лучший ассет для работы с текстом Text Mesh Pro. Да, он не дешевый, но он этого стоит. Может когда-нибудь Unity его купит, и это будет стандартным решением, как они сделали с Anima2D.
В версии TMP, которая скоро должна пойти в релиз, разработчик добавил поддержку Emoji. Точнее, можно делать свои атласы, юникод эмоджи будет автоматически заменяться на картинку. Чтобы были доступны все эмоджи, нужен большой атлас. Я использовал EmojiOne. Также понадобится одна отличная программа — TexturePacker и расширение для Unity TexturePacker Importer.
- Загружаем все эмоджи в программу и экспортируем в формат Unity — Texture2D sprite sheet.
- После этого меняем Data format на JSON (Array) и делаем экспорт еще раз.
- Теперь полученные три файла: Emoji.png, Emoji.json и Emoji.tpsheet загружаем в Unity.
Осталось с помощью TMP Sprite Importer сгенерировать атлас для Text Mesh Pro. В результате, на iOS и Android можно использовать эмоджи.
Добрый день. Отличная статья. Вопрос: для чего нужен файл «Emoji.tpsheet». Два метода генерируют разную текстуру png и tpsheet перестает работать, или я ошибаюсь. А в итоге сам asset создается из json+png
При импорте в Unity, плагин TexturePacker Importer смотрит этот файл и разбивает спрайты в атласе по нужным координатам.
Здравствуйте! Спасибо за Ваш туториал. Подскажите, а как быть со смайликами, которые состоят из двух частей, к примеру: 1f1fa-1f1e6 — флаг Украины?
Здравствуйте! Пока это невозможно, автор TextMeshPro не добавил в плагин модификаторы. Когда добавит — всё будет работать как положено.
Спасибо за статью!