Auto generate fallback font asset by system font in runtime.
Verified working on: Unity 2022.3.39, Unity 6
When you import SystemFontLocalization with UPM, these packages are automatically imported.
- Text Mesh Pro
com.unity.textmeshpro 3.2.0-pre.6
- Required 3.2.0-pre.6 for function
TMP_FontAsset.CreateFontAsset(fontPath)
- Since Unity 6 includes an appropriate version of TMP, manual import is not necessary.
- Required 3.2.0-pre.6 for function
- Localization
com.unity.localization
https://github.com/eviltwo/SystemFontLocalization.git?path=src/SystemFontLocalization/Assets/SystemFontLocalization
- Localize the text using the Localization package.
- Create empty GameObject and attach SystemFontReplacer component to it.
- Set font asset and font name list in SystemFontReplacer component.
- When you play the game, the font assets will be swapped to match the localization language.
- Use static fonts. Dynamic fonts cause diffs on git every time you build.
- Set the default language to "en".
- Set the base font asset to "Static".
- Generate a Font atlas with the character set set to "ASCII".
- Disable "kern" in text. Prevents the problem of Cyrillic characters being line breaks.
- Setup default TextMeshPro settings in ProjectSettings.