Chinese characters not displaying despite beeing in the font atlas

Hello everyone,

I have a problem with displaying chinese characters with TextMeshPro. I searched numerous threads about this topic but my problem seems to be different.

So my problem is that some chinese characters are not displayed (they show the placeholder square instead)

My process is like this: I use the TextMeshPro Font Asset Creator with a chinese font („NotoSansSC-Regular.ttf“) and the character set „Custom Characters“. I copy in the chinese characters that I need (I have only static text so I don’t need a dynamic atlas) and generate the font atlas.

Then I assign the created chinese font as fallback font asset to my english main font.

You could guess that some of the chinese characters are not in my chinese font atlas, but this is not the case. The missing characters in the above screenshot are 音乐 and 音效 and 鸣谢

If you search these characters in the above picture of the font atlas you will see that the characters are contained in there.

Another thing that is noticable is that inside a word either both characters are properly displayed or both have the replacement-squares. If characters would be missing in my font atlas I would expect the missing characters to be more randomly distributed.

I use Unity 6000.0.27f1 and Localization 1.5.3 and Unity UI 2.0.0

Hi! I have a few questions to help narrow down the issue:

  1. Are you able to reproduce the same problem when assigning the static FontAsset to the global fallback in the TMP_Settings?
  2. Does it work correctly with a dynamic FontAsset? If so, one approach could be to use a dynamic FontAsset to generate all your text and then check if any characters or glyphs are missing from the static FontAsset table.

If both FontAssets appear identical and the issue persists, it might be something on our end.

Let me know!

1 Like

Hi HugoBD,
thank you for the hints. The issue is resolved and everything displays correct when I assign the static FontAsset as global fallback in the TMP_Settings. Can you explain what is different when doing it this way around instead of assigning it as fallback of another font asset?