After update, TextMeshPro components no longer available

Greetings,

I have installed TextMeshPro (already the free version) a while ago on a pre-2017.1 Unity version, and am using it in my project (DLL name is TextMeshPro-1.0.55.56.0b9.dll). Now I have recently upgraded to 2017.1.0f3, and today I noticed the MissingMethodExceptions that were reported here, i.e.

MissingMethodException: Method not found: 'UnityEditor.MaterialEditor.BeginAnimatedCheck'.
TMPro.EditorUtilities.TMP_BaseShaderGUI.DoColor (System.String name, System.String label)
TMPro.EditorUtilities.TMP_SDFShaderGUI.DoFacePanel ()
TMPro.EditorUtilities.TMP_SDFShaderGUI.DoGUI ()
TMPro.EditorUtilities.TMP_BaseShaderGUI.OnGUI (UnityEditor.MaterialEditor materialEditor, UnityEditor.MaterialProperty[] properties)
UnityEditor.MaterialEditor.PropertiesGUI () (at C:/buildslave/unity/build/Editor/Mono/Inspector/MaterialEditor.cs:1459)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

As the issue report says the issue was fixed in 2017.1, I went to the asset store and updated/reimported the latest version of TextMeshPro (today, ie. version 1.0.55.0b11).

Unfortunately, now all TextMeshPro components in my scene no longer show up; in the inspector of the GameObjects, the script is missing (display as [X] Nothing selected) - and with them, all my settings, text, etc.

I also can’t add new TextMesh Pro components.

This problem survives a Unity restart, and rebuilding the entire Library.

Am I missing something here? What can I do to a) keep the components alive in the scene, and b) add new ones without errors?

I solved this by creating a new project, importing the version linked from here, then deleting the entire TextMeshPro folder in my actual project, and copying over the new folder from the new project.

This both kept the existing components intact, and no longer shows the MissingMethodException.

Note: I did not manage to upgrade my project using either Asset store version nor the linked version. I also noticed that in a new project, the asset store version still shows the MissingMethodException, while the linked version does not.

The release for Unity 2017.1 is not available on the Asset Store since at the time of release there was an issue with the Asset Store tool preventing uploading of packages for Unity 2017.1. This is why I provided the link in this forum.

When upgrading to a new release of Unity like 5.5, 5.6, 2017.1, 2017.2, you also need to upgrade the release of TextMesh Pro as most major releases contain API changes which are addressed in new releases of TMP.

As per the Release and Upgrade Notes, when upgrading to new version of TMP, you need to remove the previous package first by deleting the “TextMesh Pro” folder. This is required since the Asset Importer is not an installer and can’t handle files that should be removed, renamed, etc.

When upgrading, always make sure you backup your project first as well as any files you may have saved inside the TextMesh Pro folder as well as very the settings in the TMP Settings file, Style Sheet and Sprite Assets in case you made changes to any of those.

1 Like

@Stephan_B Ah I see, then it was a double confusion on my part; sorry about that, and thanks for clarifying! I will keep the update procedure in mind from now on.

1 Like

I’m still lost. No matter what I try, the existing instances of TextMeshProUGUI get disconnected from the scripts. If I try reconnecting the component, my old text and settings are gone, and my existing font asset cannot be selected. Was using Unity 5.6.1f1, upgraded to 2017.2.0b11. Was using paid TMPro, tried importing the new non-deprecated version and this still happens. I delete the original before importing. What else am I overlooking?

Edit 1: I finally noticed the bit that told me to NOT use the new thing in the Asset Store and instead go to the old forums to find the source code version. I’ll give that a try…

Edit 2: Yup, that did it.

I wish I could make that *** Important Note *** flash to spare users from running into this.

Like the note said, due to the process of creating dll’s changing GUIDs, this results in incompatibility between the free - non-source code and the paid / source code version of TextMesh Pro. Although these GUIDs can be converted back and forth, there are no benefits for paid users who have access to the source code version to switch over to the free non-source code version.

As I have stated in several posts, I will continue to provide support and updates for the paid version via the TextMesh Pro user forum as I have done over the past several years. Once the new integrated version of TMP becomes available, we will then look at transitioning everyone to the new thing. Until then stick with the paid / source code version :slight_smile:

2 Likes

Way too much medium roast for me yesterday. Good for waking up, bad for attention span! :wink:

The TMPro transition is not a painless one, for sure, but I appreciate all the hard work! Your success is well-earned.

2 Likes

Trying to upgrade to 2017.2. I bought TMP years ago.

Steps I’m taking:
–install 2017.2 (do not open Unity once it’s done - I also tried opening it and deleting the TMP folder from my project - same outcome as this)
–delete /Assets/TextMesh Pro/ from my project via Explorer
–double click “TextMesh Pro - Release 1.0.55.2017.2.0b12 (dll only).unitypackage” - gotten from the sticky thread Useful Information & Download Links . It opens Unity.
–click my project to open it
–It asks if I want to update my code to the new version. I say yes.
–Import the new TMP
–All my TMP couplings on all my text objects in all my objects (prefabs and all UI elemnets) are all gone with the message “ Nothing selected”.

What am I doing wrong? Do I have to go through all (Several HUNDRED!) my text and re-do with the “new” TMP? Doesn’t seem worth it.

Thanks.

I also tried what @plmx did: “I solved this by creating a new project, importing the version linked from here, then deleting the entire TextMeshPro folder in my actual project, and copying over the new folder from the new project.”

Didn’t work for me.

update: got these sorts of errors: “Assertion failed: Failed to unload ‘Assets/TextMesh Pro/Color Gradients/Light to Dark Green - Vertical.asset’”

“Assertion failed: Failed to unload ‘Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset’”

“Assertion failed: Failed to unload ‘Assets/TextMesh Pro/GUISkins/TMPro_DarkSkin.guiskin’”

“Assertion failed: Failed to unload ‘Assets/TextMesh Pro/Resources/Sprite Assets/Default Sprite Asset.asset’”

“Assertion failed: Failed to unload ‘Assets/TextMesh Pro/Color Gradients/Yellow to Orange - Vertical.asset’”

etc…

As per the Release and Update notes, before importing the new release of TMP, you have to first remove the previous version by deleting the “TextMesh Pro” folder. Be sure to back up your project first as well as any files you may have saved in the “TextMesh Pro” folder. Also review the TMP Settings file in case you made any changes to it.

Make sure your are importing the correct version of TextMesh Pro for the version of Unity you are using. If you are using the free / dll version, you can tell what version of TextMesh Pro you are importing by looking at the names of the dll included in the “TextMesh Pro/Plugins/…” folder. The names on the dll will be something like “TextMeshPro-1.0.55.xx.0b12” where the xx is 56 for Unity 5.6 or 2017.2 for Unity 2017.2.

If you are using the free / dll version, it is possible those dll were loaded when you performed the update and as such you could get some errors just after the import of the new package. However, these will go away upon closing and re-opening Unity.

If you still have any issues following these instructions, please let me know.

Stephen thanks for the reply. Yeah, like I said in my original post:

–install 2017.2
–delete /Assets/TextMesh Pro/ from my project via Explorer
–double click “TextMesh Pro - Release 1.0.55.2017.2.0b12 (dll only).unitypackage” - gotten from the sticky thread https://forum.unity.com/threads/tex…ation-download-link-for-2017-1-2017-2.458634/ . It opens Unity.

I pay for Unity and had paid for TMP. No free versions of anything.

Today I thought maybe if I upgraded from my current 2017.1.0f3 to 2017.1.1 it might work (vs going straight to 2017.2.0), but got all the same errors and the “ Nothing selected”. I made sure to use “TextMesh Pro - Release 1.0.55.2017.1.0b12 (dll only).unitypackage” too (for Unity 2017.1).

What other info can I give you?

The reason you are having this upgrade issue is because you were / are using the Source Code / Paid version of TextMesh Pro but importing the DLL only / Free version. Due to how the DLL creation process works, the GUIDs of these two versions of TextMesh Pro are completely different and thus not compatible with each other.

Since you have purchased TextMesh Pro in the past, you will need to get the updated version of the source code version of TMP from the TextMesh Pro user forum where I continue to provide support and updates for it as I have done over the past several years.

You will need to register to the TextMesh Pro user forum and as part of this process provide a copy of your invoice number for the purchase of TMP. The invoice number of all assets you have purchased from the Asset Store are available by login into your Asset Store account and going to the Credit Card / Paypal tab where you will find invoice numbers for all your previous purchases. Note that you may need to switch to the older version of the Asset Store in case, you can’t find this information in the new store account tab.

Once your account has been approved on the TMP user forum, you will find the latest releases of TextMesh Pro in the “TMP - Alpha, Beta and Final Releases” section of the user forum. Latest releases are always sticky and indicate which versions of Unity they are for.

Please send me a private message once you have registered on the TextMesh Pro user forum. This way I will be alerted and will get you approved right away.

Updated to Unity 2017.2.0f3. I was able to update TM Pro with method described: delete TextMesh Pro folder and import new version from asset store view. BUT: When compiling to Android, the Canvas-based texts vanish! I can momentarily bring them back by modifying font asset material color and pressing esc (!), then all texts become visible. But it will not last - on next play on editor they are gone again. They are visible all the time in scene view, just not in Game view in Editor or target Android machine. What am I doing wrong?

For some reason it appears that with font asset I am using, the Canvas renders fonts behind normal graphics. Render mode is set to Screen Space- Overlay which makes this even more curious. All the other elements on canvas are rendered on top of screen as they should, only TMPpro texts not. I was able to bring texts to foreground by adding separate UI camera and rendering them via that, clearing depth before render. This is not good obviously, I’d like to know why are TMPro texts rendered using depth buffer even when canvas is set to screen space - overlay.

Is this something new that you are running into with the latest release or something that you have not observed before?

Is this only on Android?

Can you provide me with a simple repro scene / project of this?

I have a similar issue.
2017.2 and the correct matching version of TMPro from the Asset Store.

TextMesh text renders in the Editor and on an iOS build, but does not show on an Android build.

EDIT FOLLOW UP:
Nevermind, it must be something else in my project causing the issue. I built an empty test project and it worked as expected on Android. Really strange that my broken project works on one platform and not the other though. When/If I find a solution I’ll post back here in case anyone else has a similar issue.

Take a look at player settings for those platforms as often texture compression, graphic API, split binary, etc. can result in issues on some platforms or even different devices.

Split Binary was the culprit. App has a video in it which pushed the APK over 100MB. We’re not at the Play Store submission stage yet so unchecking Split Application Binary solved it. I had no idea TMPro asset would get lumped in to the extension file, but hey, it’s working now! Feel kinda dumb for not catching this off the bat - but hopefully my comments will help someone else in the future.

Glad the culprit was identified and everything is working now :slight_smile:

Hmm, cheezorg, didn’t really have his issue fixed, only postponed.

Stephan, did you ever find out what the issue with “Split Application Binary” and Text Mesh Pro is?

I saw a post from a while back at http://digitalnativestudios.com/forum/index.php?topic=1527.0 where someone reported it as a unity bug #905515 but I can’t find it in the issue tracker. Wondering what happened to it.

I’m getting a nullreference exception in the first scene. The .obb was not present, if it is there is no problem, but we want to show text before downloading the obb file. This happens on the awake of a Text Mesh Pro component:

NullReferenceException: Object reference not set to an instance of an object
  at TMPro.TMP_Settings.get_defaultStyleSheet () [0x00000] in <filename unknown>:0
  at TMPro.TMP_StyleSheet.get_instance () [0x00000] in <filename unknown>:0
  at TMPro.TMP_StyleSheet.LoadDefaultStyleSheet () [0x00000] in <filename unknown>:0
  at TMPro.TextMeshProUGUI.Awake () [0x00000] in <filename unknown>:0