Problem with TextMesh Pro (Script) being empty in Inspector

I am trying to use TextMesh Pro with Unity 2017.2.0b11 and I am running into an odd problem. According to the Zolran tutorials, when I create a text as either a 3D object or a UI object I should have one of two components appear in the Inspector. Well, I get the “Sample text”, and my TextMesh Pro Script component appears, but it is completely empty. I have tried to reimport the TextMesh Pro by completely deleting it first, but it hasn’t helped. Has anybody else had this happen and were you able to fix it? Does anybody have any ideas? I sincerely appreciate any help on this matter. Thank you in advance.

Here’s what my Inspector shows:

You appear to have some errors in the debug console which might be causing this. Also make sure you are using the correct version of TextMesh Pro for the version of Unity you are using. For instance, when using Unity 2017.2, the name of the TextMesh Pro DLL found in the “TextMesh Pro/Plugins/Runtime DLL/” should be “TextMeshPro-1.0.55.2017.2.0b12”.

Let me know what the name of that dll is? If it is something different, you need to upgrade to the appropriate version of TextMesh Pro. Be sure to backup your project and read the Release / Upgrade notes.

Yeah, I saw the version number on the DLL and it looked right. I just double checked it and it is : TextMeshPro-1.0.55.2017.2.0b12.

I have received a User Guide with my TMP package, but I do not see any Release/Upgrade notes. However, I am not upgrading, this is the first time I have tried to import/use TMP. I have no prior versions.

How would we address errors in the debug console?

Thanks.

What are the errors? I could not read them when looking at your image.

With regards to the Release Notes, these are linked on the Asset Store page. This link always points to the Release Notes on the TextMesh Pro user forum which are available here.

Yikes!!! Okay, 347 errors! Most of them are duplicate calls. There seem to be only 5 errors that are called over and over again. As soon as I create the 3D text object, the errors are:

GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

The targets array should not be used inside OnSceneGUI or OnPreviewGUI. Use the single target property instead.
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

ArgumentException: Getting control 0’s position in a group with only 0 controls when doing Repaint
Aborting

ArgumentException: Getting control 1’s position in a group with only 1 controls when doing Repaint
Aborting

— The next one is a really long one because it is referencing 12 different lines of code —

NullReferenceException: Object reference not set to an instance of an object
TMPro.EditorUtilities.TMP_EditorPanel.OnSceneGUI ()
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[ ] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[ ] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[ ] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
UnityEditor.SceneView.CallOnSceneGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:2429)
UnityEditor.SceneView.HandleSelectionAndOnSceneGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:1759)
UnityEditor.SceneView.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:1591)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[ ] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[ ] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[ ] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:285)
UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:278)
UnityEditor.HostView.InvokeOnGUI (Rect onGUIPosition) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:245)

Hopefully this won’t be as complicated for you as it seems to me. Thank you again for your efforts.

Most of those errors are not related to TextMesh Pro. However having errors in a project would affect script compilation and as such when importing any asset like TextMesh Pro would likely result in issue as you are experiencing.

My suggestion would be for you to address those first 4 errors which once addressed should resolve the script compilation issues and allow TextMesh Pro to work. It is also possible that having errors in the project can affect the import process so you could also delete the whole “TextMesh Pro” folder. Fix those remaining errors and then once all is good re-import TextMesh Pro.

Okay, so as soon as I deleted the Sample Text, I cleared out the console, ran my project, and there are no errors in the debug console. Then I created a 3D object TextMesh text and bang - 20 errors (the ones I showed you).

Here they are:

First, let’s make sure everything is working as it should when importing TextMesh Pro. Please create a new Unity project and import TextMesh Pro in this new project. Let’s see if that works as expected.

Sorry for the delay … I had a hard time getting 2017 b to start a new project. I had to shut everything down for a while, but I finally coaxed it into opening a new one I called “Test”. So I tried to create a new 3D Object, and TextMesh was not a menu option … which is how it should be, but I checked to make sure it didn’t linger. Then I did a fresh import straight from the Asset Store.

Once that finished, there were 689 errors, I never even got to try to create a TextMesh. These errors were all of the same types:

This first one had several different TMP_ types that it couldn’t load, such as Sprite Asset, Text, Color Gradient, etc. and then later these became C# class calls like SubmitEvent, SelectionEvent, OnValidateInput, and so on.

TypeLoadException: Could not load type ‘TMPro.TMP_FontAsset’ from assembly ‘TextMeshPro-1.0.55.2017.2.0b12, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’.

FileNotFoundException: Could not load file or assembly ‘UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’ or one of its dependencies.
System.MonoCustomAttrs.GetCustomAttributesBase (ICustomAttributeProvider obj, System.Type attributeType) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/MonoCustomAttrs.cs:108)
System.MonoCustomAttrs.GetCustomAttributes (ICustomAttributeProvider obj, System.Type attributeType, Boolean inherit) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/MonoCustomAttrs.cs:151)
System.MonoType.GetCustomAttributes (System.Type attributeType, Boolean inherit) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/MonoType.cs:595)
UnityEngine.AttributeHelperEngine.GetCustomAttributeOfType[DefaultExecutionOrder] (System.Type klass) (at C:/buildslave/unity/build/Runtime/Export/AttributeHelperEngine.cs:163)
UnityEngine.AttributeHelperEngine.GetDefaultExecutionOrderFor (System.Type klass) (at C:/buildslave/unity/build/Runtime/Export/AttributeHelperEngine.cs:148)


TypeLoadException: Could not load type ‘UnityEditor.Graphs.AnimationBlendTree.Node’ from assembly ‘UnityEditor.Graphs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’.


TypeLoadException: Could not load type ‘UnityEditor.Graphs.Node’ from assembly ‘UnityEditor.Graphs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’.


I’m beginning to suspect that I have a much bigger problem here.

Oh, and also … TextMesh Pro still does not show up as an option when creating a 3D Object or a UI Object. So, yeah, the problem is even worse than before. Nothing ever works smoothly for me the first time. :roll_eyes:

There is something definitely wrong here.

You should be able to create an new empty project without any issues. Make sure you do not import any asset in this new empty project.

Once you have created a new project, check your Project Settings - Editor - Asset Serialization mode to make sure you are using Force Text.

At this stage, the only text related thing that should show up in the Create - 3D Object menu is the 3D Text object. Make sure this works correctly.

If everything works as expected up until this point, import the latest release of TMP from that Asset Store. If you are using Unity 2017.2, make sure the name of the TextMesh Pro DLL located in the “TextMesh Pro/Plugins/Runtime DLL/…” is TextMeshPro-1.0.55.2017.2.0b12.

When the import window is open, make sure you do not un-select any files.

After the import check if you have any errors in the console. You should not have any.

P.S. If you still have issue, please create a video showing the entire process of when you create the new project, import the asset, etc. Perhaps this will make it easier to identify where / what is causing the behavior you are experiencing.

Okay, my Project Settings - Editor - Asset Serialization field has a 2 in it. It is a data entry field, not a drop down menu.

Hello World popped up just fine, and the only error I have right now (even before the text) is:


Assets/TextMesh Pro/Examples/Scripts/TMP_DigitValidator.cs(12,39): error CS0012: The type UnityEngine.ScriptableObject' is defined in an assembly that is not referenced. Consider adding a reference to assembly UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’

Also, I cannot get this error to clear the console.

I am beginning the import now…

You also appear to be running the inspector in Debug mode. Switch to Normal mode by Right Click on the Inspector tab.

Did you create a new project? If you did, it would not contain TextMesh Pro and as such, you would not be getting any errors related to TextMesh Pro. The fact that you are getting an error in a new project points to other issues.

Good point … with TMP not installed there shouldn’t be an error pointing to a TMP directory …

Yet this IS a fresh, new project and it has TMP squarely in the assets. This is really strange!

Can you create a video showing the entire process from creating the new empty project and on? Like I said, that might enable me to see what might be causing this behavior.

Oh, and btw… here is what I get when I follow your roadmap to editor settings:

Switch your Inspector to Normal mode instead of Debug mode.

Oh no … what a rookie mistake. Sorry.

We still need to figure out why creating a new empty project still produces error related to TextMesh Pro which in an empty project should not be in there at all.

When you create a new project, click on Add Asset and make sure you don’t have TextMesh Pro selected there.

Okay, I have an empty project with no assets whatsoever, including no TMP.

I have created a 3D text object (standard) - Hello World, no errors.

Next I will import TMP…

349 errors, and Unity has locked up. Windows has closed the program on me.

I think that’s enough for tonight… 11 PM my time. Thank you for your time and efforts. I don’t know what to do at this point, but I think I’m going to back up all of my projects now … just in case. You have been very kind and patient. Good night, good sir.