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

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.