Избранное Все заметки GitHub icon Мой Github Обо мне

Emoji в Unity

Обновлено 1.03.2017
TextMeshPro теперь входит в состав Unity и стал бесплатным!

Как добавить поддержку эмоджи в Unity? К сожалению, решения из коробки нет. Но есть самый лучший ассет для работы с текстом Text Mesh Pro. Да, он не дешевый, но он этого стоит. Может когда-нибудь Unity его купит, и это будет стандартным решением, как они сделали с Anima2D.

В версии TMP, которая скоро должна пойти в релиз, разработчик добавил поддержку Emoji. Точнее, можно делать свои атласы, юникод эмоджи будет автоматически заменяться на картинку. Чтобы были доступны все эмоджи, нужен большой атлас. Я использовал EmojiOne. Также понадобится одна отличная программа — TexturePacker и расширение для Unity TexturePacker Importer.

  1. Загружаем все эмоджи в программу и экспортируем в формат Unity — Texture2D sprite sheet.
  2. После этого меняем Data format на JSON (Array) и делаем экспорт еще раз.
  3. Теперь полученные три файла: Emoji.png, Emoji.json и Emoji.tpsheet загружаем в Unity.

Осталось с помощью TMP Sprite Importer сгенерировать атлас для Text Mesh Pro. В результате, на iOS и Android можно использовать эмоджи.

Поделиться
Отправить
Запинить
2 комментария
Александр

Добрый день. Отличная статья. Вопрос: для чего нужен файл «Emoji.tpsheet». Два метода генерируют разную текстуру png и tpsheet перестает работать, или я ошибаюсь. А в итоге сам asset создается из json+png

Игорь Лопатин

При импорте в Unity, плагин TexturePacker Importer смотрит этот файл и разбивает спрайты в атласе по нужным координатам.

Валерий Моргун

Здравствуйте! Спасибо за Ваш туториал. Подскажите, а как быть со смайликами, которые состоят из двух частей, к примеру: 1f1fa-1f1e6 — флаг Украины?

Игорь Лопатин

Здравствуйте! Пока это невозможно, автор TextMeshPro не добавил в плагин модификаторы. Когда добавит — всё будет работать как положено.

Популярное