TextMesh Pro: Full emojis support

Welcome to Unity, Stephan! Great to see you over here. Picking up where we left off from http://digitalnativestudios.com/forum/index.php?topic=753.45, it sounds like support for emojis in TMPro strings is now pretty much working, but after reading through that thread on your old forum, I’m not sure how to implement the entire solution including fallbacks, etc. Were you planning on posting one of your trademark videos that explains how this works, or could you maybe just post a few sentences here that describes the workflow for using this feature? How do we hookup the fallbacks, etc. starting from scratch?

Thanks!

I’ll try to create a new video when time permits :wink:

In the meantime, the trick with Emojis is to assign a Unicode value to the different sprites contained in whichever sprite asset you wish to use for Emojis.

Emojis are mapped in the UTF32 range so if you were to type the smiley face which is \U0001F600 then it would show up. So in your sprite asset, you would assign the unicode value of 1F600 to whatever sprite you want to show up when using the smiley face.

Now in terms of the fallback, TMP can now use the default sprite asset assigned in the TMP Settings file to look for missing glyphs. So if you were to type “\U0001F600” in the Text Input Box, it would get this sprite from the EmojiOne sprite asset which is assigned in the TMP Settings file or in any of the Fallback sprite assets assigned to it.

1 Like

Hi @Stephan-B ,

Can you please confirm why we’re not supporting 4 digits (264C) Unicode and only 5 digits (1F3FC) Unicode are supported? We are missing out a huge list of iOS supported emoji’s.

Thanks
Arun

TMP does support both UTF16 which are defined by “\u264C” and UTF32 which are defined by “\U0001F3FC”. The lower case \u implies UTF16 and uppercase \U UTF32.

If the unicode value assigned to the sprite asset is 264C or 1F3FC and in a string or in the TMP Input Box you enter \u264C and \U0001F3FC both of those emojis will show up.

When I try to add \U0000263a it replace with \u263a:

8645064--1162902--upload_2022-12-8_15-12-7.png

8645064--1162905--upload_2022-12-8_15-12-18.png

But I have this icon in my sprite asset

8645064--1162908--upload_2022-12-8_15-12-59.png

I have 200 icon in my sprite asset but only this one shows wrong.
Also you can try it with EmojiOne built in TextMeshPro. The result is the same.
Can anybody say what is wrong?

Hi there,
I am using the Emoji’s with the Sprite asset and I can use the Emoji’s with single Unicode Like “U+1F600” , but there is the Issue that how can I use the Emoji’s with the long Unicode Like" u1f3c3_1f3fb_200d_2640" the Running Girl Emoji.
I try to write it and it shows the Girl but with the Emoji it shows the Boxes.
Will you please let me know How I can Do it.
Thanks in Advance.
@Stephan_B
@HugoBD-Unity