Search Issue Tracker

Fixed in 3.0.4

Fixed in 1.5.4, 2.1.4

Votes

0

Found in [Package]

3.0.3

Issue ID

1303957

Regression

No

TextMeshPro Exceptions thrown and text disappears because text has changed and not been reparsed

Package: TextMeshPro

-

How to reproduce:
1. Open the attached project ("TMProUpgradeBug.zip")
2. Notice KeyNotFoundException

Expected results: Text is seen in the Canvas
Actual results: Text disappears because the text has not been re-parsed

Reproducible with: TMP 2.1.3 (2019.4.19f1), TMP 3.0.3 (2020.1.17f1)
Could not test with: 2018.4.31f1, 2021.1.0b5, 2021.2.0a3 (After upgrading/downgrading can't reproduce with current project)

Workaround:
In OnPreRenderCanvas()
Change this :
if (m_isInputParsingRequired || m_isTextTruncated)
{
#if TMP_PROFILE_ON
Profiler.BeginSample("TMP - ParseInputText()");
#endif

ParseInputText();

TMP_FontAsset.UpdateFontFeaturesForFontAssetsInQueue();

#if TMP_PROFILE_ON
Profiler.EndSample();
#endif
}
To This:
ParseInputText();
TMP_FontAsset.UpdateFontFeaturesForFontAssetsInQueue();

This change has to be done in both TMPro_Private.cs and TMPro_UGUI_Private.cs files. This change should be done in the Global Package Cache otherwise, closing / re-opening Unity will revert the change.

  1. Resolution Note (fix version 3.0.4):

    Fixed in TMP 3.0.4 which is available in Unity

  2. Resolution Note (fix version 2.1.4):

    Fixed in TMP 2.1.4 which is available in Unity 2019.1.0a1 and above

  3. Resolution Note (fix version 1.5.4):

    Fixed in TMP 1.5.4 which is available in Unity 2018.4

Add comment

Log in to post comment