Search Unity

TextMesh Pro Migrating from Legacy / Asset Store to Package Manager Releases

Discussion in 'UGUI & TextMesh Pro' started by Stephan_B, Jan 9, 2018.

  1. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    You might need to use the updated GUID data set referenced in the first post of this entire thread at the bottom Updated Notes item 6.
     
  2. aliak

    aliak

    Joined:
    Jan 2, 2017
    Posts:
    12
    @Stephan_B, any response regarding this?:)
     
  3. Philkrom

    Philkrom

    Joined:
    Dec 26, 2015
    Posts:
    90
    Hi again
    I replaced the 2 json files and exactly the same problem... :(
     
    Last edited: Oct 23, 2018
  4. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    Make sure that when you scan the project that no scene is opened. Then when scanning the project, does the tool list any of these prefabs as needing to be updated? Can you post a screenshot showing the results of the scanning process?
     
  5. Philkrom

    Philkrom

    Joined:
    Dec 26, 2015
    Posts:
    90
    "No scene opened" you mean no scene using TMPro ?
    Here is the result of the scan process
    (I had to clic scan button twice)


    What is strange is these gameobjects are not prefabs in the 2017 version as you can see (2017 vs 2018)


    I tried the same process with a very simple project

    - creating a TMPro text in a 2017 Unity version with tmpro asset
    - create an empty scene
    - save the project
    - remove the tmpro folder (if not import essential ressources doesnt appear in the TMPro dropdown menu)
    - open in U2018
    - import essential ressources
    - editor visible metafiles
    - TMPro remaping tool
    - scan
    - save modified files

    and it works well.
     
  6. chase-cc

    chase-cc

    Joined:
    Jan 26, 2018
    Posts:
    11
    I was able to follow the migration guide, but I spotted a weird runtime exception in TextMesh Pro that I would like to fix locally. It's possibly just a Unity 2018 bug, not sure at this point. I'd like to just move past it and have the fix under my version control.

    What is the workflow for pulling the source code into my project to address this exception while also keeping the GUIDs intact? I don't want to just modify the source files in Library/PackageCache/com.unity.textmeshpro@1.3.0, as we don't check our Library into source control (though perhaps nowadays we should selectively check in certain directories in the library?)

    @Stephan_B

    the exception I'm seeing btw is in TextMeshPro.cs, around line 270ish -

    Code (CSharp):
    1. if (m_renderer.sharedMaterial.GetInstanceID() != m_sharedMaterial.GetInstanceID())
    2.     m_renderer.sharedMaterial = m_sharedMaterial;
    it seems that m_renderer.sharedMaterial is null for me. We have some old code that is setting the fontSharedMaterial programmatically.

    changing it to this is my workaround -
    Code (CSharp):
    1. if (m_renderer.sharedMaterial == null || m_renderer.sharedMaterial.GetInstanceID() != m_sharedMaterial.GetInstanceID())
    2.     m_renderer.sharedMaterial = m_sharedMaterial;
     
    Last edited: Oct 24, 2018
  7. chase-cc

    chase-cc

    Joined:
    Jan 26, 2018
    Posts:
    11
    btw I also figured out how to pull the text mesh pro 1.3.0 package in without trashing my old guids. if anyone is curious -
    1. install text mesh pro package via package manager
    2. delete all the stuff in your old Text Mesh Pro folder
    3. Window > Text Mesh Pro > Install Essential assets (forget what it's called)
    4. find the TextMesh pro package in Library/PackageCache
    5. move all the folders from the Library/PackageCache/textmeshpro... to your Assets/TextMesh Pro folder
    6. mark all the files in the Assets/TextMeshPro folder as Read+Write so you can edit them.
    7. delete the package from Library/PackageCache/
    8. remove the entry for text mesh pro from the manifest.json
    now open up unity
    1. run the guid remapper that comes with TextMesh pro.
    2. everything should now work, and you can edit the TextMesh Pro source code.
     
  8. Philkrom

    Philkrom

    Joined:
    Dec 26, 2015
    Posts:
    90
    So all the efforts I made to migrate took a lot of time, no answer to my message #355... Is there any way to REMOVE TMPro package from U2018 and to import an old project made with U2017 including TMPro asset ?
    Would be great !
     
  9. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    The migration process should work as 100's of users have already gone through it. If you are able to, please provide me the project via submitting a bug report or private link via a PM and I will gladly take a look and do the migration and then provide feedback on perhaps why you were getting the issue you ran into.
     
    Philkrom likes this.
  10. inejwstine

    inejwstine

    Joined:
    Sep 22, 2012
    Posts:
    4
    I recently upgraded to Unity 2018, and my project ran just fine in Unity. However, when I tried to attach Visual Studio to Unity for debugging, it kept failing due to missing file errors. There were dozens of them, each one saying something like "Source file 'Packages\com.unity.textmeshpro\Scripts\Runtime\FastAction.cs' could not be found" but for a different file name. Not all of them were for TextMeshPro. There were errors for PackageManagerUI and StandardEvents as well. Turns out the entire Packages folder had the expected folder structure, but none of the actual script files.
    I found this user online who was encountering the exact same problem and followed their steps to fix the problem, which just involves copy/pasting the files from "...\Local\Unity\cache\packages\..." (https://gamedev.stackexchange.com/q...ing-in-missing-file-errors-from-visual-studio).
    Even though it's working for me now, I just wanted to point out the issue I was having because it seems abnormal. Could it be that I have something set up incorrectly? Why weren't those files in my project's Packages folder?
     
  11. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    Several users have run into similar issues (including myself). I am not totally sure what causes these, perhaps a fault download from the package manager. Typically, deleting the package cache will force the packages to get downloaded again thus correcting the issue.
     
  12. Philkrom

    Philkrom

    Joined:
    Dec 26, 2015
    Posts:
    90
    Stephan, thanks for your answer, as I didn't see how to send an MP, I started a conversation with you, Hope you can access it !
     
    Stephan_B likes this.
  13. FullMe7alJacke7

    FullMe7alJacke7

    Joined:
    Dec 17, 2013
    Posts:
    55
    Im seeing weird behavior in my VR project with TMP and CurvedUI.

    Yes, I have the TMP CurvedUI scripts on and working.

    The TMP text box is not even close to where the gizmo is, I believe it has to do with a lot of repeated scaling of the yellow box gizmo. Anyone else experiencing this?
     
  14. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    Make sure the margin settings (presuming that is the yellow box gizmo you are talking about) are set to zero in the text object inspector / extra settings.
     
    FullMe7alJacke7 likes this.
  15. FullMe7alJacke7

    FullMe7alJacke7

    Joined:
    Dec 17, 2013
    Posts:
    55

    Did that, I ended up just remaking the text elements and it seems to have fixed the weird behavior.

    Now I have lost my Text Curve on all TMP assets, existing and newly created.
    I've updated to 1.3.0 and still does not change anything. Also noticed I lost the "set dirsty" checkbox so im not sure if that's a sign of some corruption somewhere or what. Might have to just remove entirely and reimport and see if that fixes it but I would hate to have to resetup all my UI text :( hopefully if I do that it remembers my meta data and doesn't effect them.

    UPDATE: For anyone else having this problem, refer to TMP section under CurvedUI, it requires custom player settings to be manually changed.
     
    Last edited: Nov 4, 2018
  16. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    I would suggest checking with the author of Curved UI as well.
     
  17. cantfindanamethatisntalreadytaken

    cantfindanamethatisntalreadytaken

    Joined:
    Sep 21, 2018
    Posts:
    4
    Hello, I've been experimenting with emoji in the Input Field. I notice that this works well on Android and iOS but doesn't work with the Windows popup keyboard at all. It seems to replace text in the wrong place and copy/paste doesn't work. Do you have plans to get this working on Windows? Thanks,
     
  18. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    On Windows, the keyboard event doesn't return the correct key input and as such TMP ends up getting a two ? ? instead of a valid surrogate pair.

    This behavior needs to be fixed by the Unity Input team with whom I discussed this last week. No ETA yet but they are aware of this issue.
     
  19. roseportalgames

    roseportalgames

    Joined:
    Aug 9, 2017
    Posts:
    173
    TMPro text fields are suddenly invisible when I start a scene. If I change any of them, for example, I change the text or SetActive true/false one, then all of them re-appear.

    See:

    https://imgur.com/a/6KqpAo6

    Using Unity 2018.2.5f1

    Edit: OK so this only happens to one specific Font Asset, the preset Roboto-Bold. I've recreated the Font Asset myself but the issue persists?
     
    Last edited: Nov 7, 2018
  20. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    Can you please post in a separate thread in the "Unity UI & TextMesh Pro" section of the forum?

    This thread should only be used for migration related issues between the source code / DLL version of TMP to the new TMP UPM package.

    Posting in the other forum in unique threads will also make it easier for me to track these and more importantly for users to search / find these threads / potential solutions.

    Edit - See you already did that. Thanks
     
  21. roseportalgames

    roseportalgames

    Joined:
    Aug 9, 2017
    Posts:
    173
    Sorry, I didn't realise that was the focus of the topic at first.
     
  22. konradkunze

    konradkunze

    Joined:
    Jan 11, 2017
    Posts:
    10
    Migration of TMP is not working for our project. We now tried it multiple times for now 3 full days as all processes in our project take some time. In the end it never works.

    What we did:
    1. Create a empty scene and load it. Close the project
    2. Open the project in Unity 2018.2
    3. Delete the whole TextMesh Pro folder
    4. Closed the Unity and opened it again.
    5. Install the new TMP basics (via the new menu in Unity 2018.2)
    6. Process the scan for migrating the GUID's
    7. waited until it's done (takes forever)
    8. saved changes
    9. now opened a scene
    -> All TextMesh Pro scripts missing ("Missing script...")

    Is there anything we can do? Manually recreating all text objects would take us multiple days if not weeks.

    We're tired of trial and error and always waiting hours for reverting the project, trying it again, scanning, etc.
     
  23. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    The process is as outlined in the first post and update notes at the bottom of the first post.

    1) Open Unity 2018.2
    2) Close any opened scene by going to file menu / new scene.
    3) Remove the old version of TextMesh Pro by deleting the "TextMesh Pro" folder. Be sure to backup any assets / files you may have saved inside the old TextMesh Pro folder. Be sure to review any changes you may have made to the TMP Settings file.
    4) In Unity 2018.2, the TMP package should already be installed. However, it might be version 1.2.4. You should update to version 1.3 which includes a revised "Project Files GUID Remapping Tool" which allows you to target specific folders to scan in the project. If your TMP resources / files / prefabs are in specific locations, scanning those only will speed up the process.
    5) Import the TMP Essential Resources and Examples and Extras.
    6) At this point, there should be no errors in the console and TMP should be fully operational. Just for testing, create a new TMP text object to make sure everything is fine. If so process to the project scanning / remapping. If you still have errors in the console or TMP doesn't appear to be working then please let me know. Otherwise proceed with step 7.

    7) Run the Project Files GUID Remapping tool and as per the above, you can now target specific folders.
    8) That should be it.

    If some of the file still appear to not have been converted, then as per item 6 in the update notes at the bottom of the first post, you will need to use the alternative PackageConversionData file linked in that post. This is only necessary if the script references in your project were manually re-assigned at some point in the past.

    I am sorry you ran into issues in this process which can indeed be time consuming depending on the size of the project. Rest assured it will work as 1000's of TMP users have gone through this already. If you still have issues following the steps outlined above, I will be more than happy to go through the conversion myself (if you can provide me access to the project via bug report / PM / github / etc.) or to get on skype or google meet to help you get this done.
     
  24. konradkunze

    konradkunze

    Joined:
    Jan 11, 2017
    Posts:
    10
    It seems like the "GUID Conversion files.zip" package solved the issue!

    thank you very much for the hint.
     
    Stephan_B likes this.
  25. drcrck

    drcrck

    Joined:
    May 23, 2017
    Posts:
    328

    Extrapolating the current speed, I can estimate it will finish the scanning in 2025 or so. Is it normal?
     
  26. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    There is an updated TMP_PackageUtilities.cs included with version 1.3.0 of TMP or available for download at the bottom of the first post in this thread (See Updated Notes #6).
     
  27. Robdon

    Robdon

    Joined:
    Jan 10, 2014
    Posts:
    141
    Hi,

    Just to let you know about some problems I've had with upgrading TextMeshPro and also Unity 2018.3.b11

    Firstly, upgrading from Unity 2018.1.0f2 -> the beta didn't go so well for TMP. I followed the instructions at the front of this post, and it seemed to work for the main part, but it did not seem to upgrade my Prefabs that has TMP in them.

    I tried to explain to your support about the problem, but they didn't understand me I don't think, and just closed the ticket :( I sorted the problem out myself, but I feel letting you know about it would help you, as this was a problem and I guess could affect others. See bug report# 1103421 for more info.

    So, long story short, I fixed it by upgrading TMP to the packaged version 1.3.0 in the 2018.1.0f2 version first, then doing the Unity upgrade.

    However, I've spotted another problem today (still in back in 2018.1.0f2, as the upgrade to Beta was just a test, but I left TMP upgraded to 1.3.0).

    After upgrading to the packaged 1.3.0 version, I noticed that 4 of my TextMeshPro - InputField GOs had a 'Missing.....' in my 'On Value Changed' entries, for the function name, and my code didn't work, it just didn't call the function at all.

    Firstly, it was just pure chance I saw this, as there were no errors messages or anything produced. I think this is quite dangerous and if something is upgraded and all the editor does is put a 'missing...' on some deep GO somewhere, it can silently cause problems with projects. Would be valuable if the editor and/or the upgrade actually errored in the console or presented a list of problems it had, rather than just silently marking objects 'missing'.

    Once I had found the 'missing' Input field I could just re-select the correct module (which was exactly the same as it said was missing) and then the missing was text was gone and it was fixed.

    I then thought, what if I have more of these, there was no way of finding them in my project of 1000s of GOs though.

    So, I looked through the scene 'text' file to see what had happened, and see if I could find any others automatically.

    I could easily spot that 1 line in each InputField had not been upgraded correctly. It was still referencing the old version of TMP:

    m_ObjectArgumentAssemblyTypeName: TMPro.TMP_InputField, TextMeshPro-2017.3-1.0.56-Runtime

    I found this line 4 times in my scene file, and sure enough in the editor they had the same 'missing' problem.

    I'm guessing your upgrade is missing converting that specific line, because it converted it fine for other things like 'm_OnSelect' etc, although the other ones seem a bit different to m_OnValueChanged and only reference TMP in 1 place, where m_OnValueChanged references it in 2.

    My project is huge, and I cant be uploading that, so I've pasted in the relevant bits below:

    Original before upgrade, scene file section:
    Code (CSharp):
    1.   m_OnEndEdit:
    2.     m_PersistentCalls:
    3.       m_Calls: []
    4.     m_TypeName: TMPro.TMP_InputField+SubmitEvent, TextMeshPro-2017.3-1.0.56-Runtime,
    5.       Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
    6.   m_OnSubmit:
    7.     m_PersistentCalls:
    8.       m_Calls: []
    9.     m_TypeName: TMPro.TMP_InputField+SubmitEvent, TextMeshPro-2017.3-1.0.56-Runtime,
    10.       Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
    11.   m_OnSelect:
    12.     m_PersistentCalls:
    13.       m_Calls:
    14.       - m_Target: {fileID: 1928218764}
    15.         m_MethodName: InputSelected
    16.         m_Mode: 2
    17.         m_Arguments:
    18.           m_ObjectArgument: {fileID: 2002769137}
    19.           m_ObjectArgumentAssemblyTypeName: UnityEngine.Transform, UnityEngine
    20.           m_IntArgument: 0
    21.           m_FloatArgument: 0
    22.           m_StringArgument:
    23.           m_BoolArgument: 0
    24.         m_CallState: 2
    25.     m_TypeName: TMPro.TMP_InputField+SelectionEvent, TextMeshPro-2017.3-1.0.56-Runtime,
    26.       Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
    27.   m_OnDeselect:
    28.     m_PersistentCalls:
    29.       m_Calls: []
    30.     m_TypeName: TMPro.TMP_InputField+SelectionEvent, TextMeshPro-2017.3-1.0.56-Runtime,
    31.       Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
    32.   m_OnTextSelection:
    33.     m_PersistentCalls:
    34.       m_Calls: []
    35.     m_TypeName: TMPro.TMP_InputField+TextSelectionEvent, TextMeshPro-2017.3-1.0.56-Runtime,
    36.       Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
    37.   m_OnEndTextSelection:
    38.     m_PersistentCalls:
    39.       m_Calls: []
    40.     m_TypeName: TMPro.TMP_InputField+TextSelectionEvent, TextMeshPro-2017.3-1.0.56-Runtime,
    41.       Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
    42.   m_OnValueChanged:
    43.     m_PersistentCalls:
    44.       m_Calls:
    45.       - m_Target: {fileID: 1928218764}
    46.         m_MethodName: InputChanged
    47.         m_Mode: 2
    48.         m_Arguments:
    49.           m_ObjectArgument: {fileID: 714237533}
    50.           m_ObjectArgumentAssemblyTypeName: TMPro.TMP_InputField, TextMeshPro-2017.3-1.0.56-Runtime
    51.           m_IntArgument: 0
    52.           m_FloatArgument: 0
    53.           m_StringArgument:
    54.           m_BoolArgument: 0
    55.         m_CallState: 2
    56.     m_TypeName: TMPro.TMP_InputField+OnChangeEvent, TextMeshPro-2017.3-1.0.56-Runtime,
    57.       Version=0.0.0.0, Culture=neutral, PublicKeyToken=null

    Upgraded version:
    Code (CSharp):
    1.   m_OnEndEdit:
    2.     m_PersistentCalls:
    3.       m_Calls: []
    4.     m_TypeName: TMPro.TMP_InputField+SubmitEvent, Unity.TextMeshPro, Version=0.0.0.0,
    5.       Culture=neutral, PublicKeyToken=null
    6.   m_OnSubmit:
    7.     m_PersistentCalls:
    8.       m_Calls: []
    9.     m_TypeName: TMPro.TMP_InputField+SubmitEvent, Unity.TextMeshPro, Version=0.0.0.0,
    10.       Culture=neutral, PublicKeyToken=null
    11.   m_OnSelect:
    12.     m_PersistentCalls:
    13.       m_Calls:
    14.       - m_Target: {fileID: 1928218764}
    15.         m_MethodName: InputSelected
    16.         m_Mode: 2
    17.         m_Arguments:
    18.           m_ObjectArgument: {fileID: 666350345}
    19.           m_ObjectArgumentAssemblyTypeName: UnityEngine.Transform, UnityEngine
    20.           m_IntArgument: 0
    21.           m_FloatArgument: 0
    22.           m_StringArgument:
    23.           m_BoolArgument: 0
    24.         m_CallState: 2
    25.     m_TypeName: TMPro.TMP_InputField+SelectionEvent, Unity.TextMeshPro, Version=0.0.0.0,
    26.       Culture=neutral, PublicKeyToken=null
    27.   m_OnDeselect:
    28.     m_PersistentCalls:
    29.       m_Calls: []
    30.     m_TypeName: TMPro.TMP_InputField+SelectionEvent, Unity.TextMeshPro, Version=0.0.0.0,
    31.       Culture=neutral, PublicKeyToken=null
    32.   m_OnTextSelection:
    33.     m_PersistentCalls:
    34.       m_Calls: []
    35.     m_TypeName: TMPro.TMP_InputField+TextSelectionEvent, Unity.TextMeshPro, Version=0.0.0.0,
    36.       Culture=neutral, PublicKeyToken=null
    37.   m_OnEndTextSelection:
    38.     m_PersistentCalls:
    39.       m_Calls: []
    40.     m_TypeName: TMPro.TMP_InputField+TextSelectionEvent, Unity.TextMeshPro, Version=0.0.0.0,
    41.       Culture=neutral, PublicKeyToken=null
    42.   m_OnValueChanged:
    43.     m_PersistentCalls:
    44.       m_Calls:
    45.       - m_Target: {fileID: 1928218764}
    46.         m_MethodName: InputChanged
    47.         m_Mode: 2
    48.         m_Arguments:
    49.           m_ObjectArgument: {fileID: 19291638}
    50.           m_ObjectArgumentAssemblyTypeName: TMPro.TMP_InputField, TextMeshPro-2017.3-1.0.56-Runtime
    51.           m_IntArgument: 0
    52.           m_FloatArgument: 0
    53.           m_StringArgument:
    54.           m_BoolArgument: 0
    55.         m_CallState: 2
    56.     m_TypeName: TMPro.TMP_InputField+OnChangeEvent, Unity.TextMeshPro, Version=0.0.0.0,
    57.       Culture=neutral, PublicKeyToken=null
    See the upgraded version is still referencing 'TextMeshPro-2017.3-1.0.56-Runtime' in one place.

    I don't have too much more time to spend of this sorry, as I'm extremely busy, but I thought you might like the info.

    HTHs, Rob.
     
  28. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Hi, I'd like to chime in with my experience on the Project Files GUID Remapping Tool. I updated from Unity 2017.4.15f1 to 2018.3.0f2.

    It seems it wasn't able to fix the GUID for all the TextMesh Pro UGUI components I have. For some reason it was able to remap GUIDs for some of my GameObjects, but skipped fixing others.

    For example, in this scene:

    This GameObject was fixed:


    But this other text (in the same scene) wasn't:


    I have no idea what's causing it to do that. There doesn't seem to be any pattern I can see why it doesn't fix others.

    I even ran it through the Conversion Tool again to make sure. It just reported there's no assets needed to modify.



    In the end, I opened the files in Notepad++ (since I have assets serialized to text) and just did a mass Find and Replace. I only needed to know the old and new GUID values. It then worked ok after that.


    I needed to do it in both scenes and prefabs that have TextMesh Pro UGUI components in them.

    Note: My experience converting using Notepad++ was way faster than using the provided Conversion Tool. For one, I only made it search through *.unity and *.prefab files. And using "Find in Files", it did that for the entire Assets folder.

    When I used the Conversion tool, I saw .anim files (animations) in the progress bar, and that didn't make sense to me.
     
    Last edited: Dec 20, 2018
  29. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    It is possible that some of the files that didn't get converted were using the runtime GUID instead of the Editor DLL guid. These alternative GUIDs are included in the PackageConversionData files included in the Update notes section of the first post. You won't need to use those yourself since you manually did the change so I am just providing the information for other users.

    In terms of scanning .anim files and other asset types. Anim files can actually reference tmp objects which is why they are included in the search.

    Having to convert the project over is not a fun process. I wish it was not necessary and fortunately this will only have to be done once.
     
  30. Robdon

    Robdon

    Joined:
    Jan 10, 2014
    Posts:
    141
    FYI Stephan, I used the extra PacakgeConversionData files also, and that didn't help in my situation.
     
  31. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    Just need to figure out which files / asset types are not being handled correctly.

    In your case were those all TMP Input Fields that were included in some prefabs?
     
  32. Robdon

    Robdon

    Joined:
    Jan 10, 2014
    Posts:
    141
    Yes they were all TMP Input Fields. Everything else was fine.
     
  33. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    I'll see if I am able to reproduce the behavior on my end and if so make the necessary changes.
     
    Robdon likes this.
  34. sakus

    sakus

    Joined:
    Oct 9, 2013
    Posts:
    47
    I have an issue with a new project I just started. Unity 2018.3.0f2, TextMesh Pro 1.3.0. Everything is fine in editor but builds (iOS in this case) show no text and I saw this in logs:

    The referenced script (TMPro.TMP_FontAsset) on this Behaviour is missing!
    (Filename: ./Runtime/Scripting/ManagedReference/SerializableManagedRef.cpp Line: 195)
    The referenced script on this Behaviour (Game Object '<null>') is missing!
    (Filename: ./Runtime/Mono/ManagedMonoBehaviourRef.cpp Line: 294)
    A scripted object (probably TMPro.TMP_FontAsset?) has a different serialization layout when loading. (Read 56 bytes but expected 8164 bytes)
    Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts?
    (Filename: ./Runtime/Serialize/SerializedFile.cpp Line: 2001)
    The referenced script (TMPro.TextMeshProUGUI) on this Behaviour is missing!
    (Filename: ./Runtime/Scripting/ManagedReference/SerializableManagedRef.cpp Line: 195)
    The referenced script on this Behaviour (Game Object 'TextMeshPro Text') is missing!
    (Filename: ./Runtime/Mono/ManagedMonoBehaviourRef.cpp Line: 294)
    A scripted object (probably TMPro.TextMeshProUGUI?) has a different serialization layout when loading. (Read 32 bytes but expected 776 bytes)
    Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts?
    (Filename: ./Runtime/Serialize/SerializedFile.cpp Line: 2001)
     
  35. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    See if you get the same behavior in a new project building the example scene Old Computer Terminal included in the TMP Examples & Extras.
     
  36. sakus

    sakus

    Joined:
    Oct 9, 2013
    Posts:
    47
    Found the culprit - I had set "managed stripping level" to high in player settings -> other settings -> optimisation. Setting it back to the default value low fixed it.
     
    Stephan_B likes this.
  37. NYUnity

    NYUnity

    Joined:
    Aug 11, 2012
    Posts:
    8
    Hi there,

    I just upgraded my project from 2017.3 to 2018.3 and followed the instructions. It seems to have worked, and the application performs correctly and displays text correctly (in initial testing).

    However, in my Scene View, there are now tons of Light Blue Boxed "T"s, which as far as I can tell are attached to my TextMesh Pro scene items. They disappear if the GameObject is selected in the hierarchy. These were never there before. (I have Googled numerous ways but cannot find out anything about them; my guess is that the terms "T" and "box" and "blue" are too common.) I do see the same icon next to the "Text Mesh Pro UGUI" component in the GameObject.

    Can someone please tell me how to get rid of these from my Scene view, and if they represent something important, what they mean and why they are appearing?

    Thanks!
     
  38. Robdon

    Robdon

    Joined:
    Jan 10, 2014
    Posts:
    141
    They are just scene view Gizmos.

    To turn them off, in the scene window in the top right click the 'Gizmos' button. Then in the drop down, find all the 'TextMeshPro' and 'TMP' items under 'Scripts' and click the blue 'T' next to each of them to turn off the icons.
     
  39. NYUnity

    NYUnity

    Joined:
    Aug 11, 2012
    Posts:
    8
    Thank you! I never used a Gizmo before, so I had no idea about them.

    However, I followed your instructions and the boxed T's are still there...! I even restarted Unity, twice, and confirmed each time that the checkbox next to the shown items are blank.

    Help?
     
  40. Robdon

    Robdon

    Joined:
    Jan 10, 2014
    Posts:
    141
    Nope, don't click the check box, click the blue 'T' to the left of the check box... that turns it off/on, not the check box.
     
  41. NYUnity

    NYUnity

    Joined:
    Aug 11, 2012
    Posts:
    8
    Sheesh, I am extra double plus dumb. :) Thanks!!
     
    Robdon likes this.
  42. Slock20969

    Slock20969

    Joined:
    Nov 18, 2015
    Posts:
    15
    Just wanted to let you know that this worked! Been looking for this for a year.
     
  43. henriqueranj

    henriqueranj

    Joined:
    Feb 18, 2016
    Posts:
    177
    Hi @Stephan_B , just wanted to let you know how well your migration tool worked when I had to import a Unity 5.6 project (with TextMeshPro from those days) to 2018.3. Great work and thank you very much! You just saved our team countless hours of work.
     
    Stephan_B likes this.
  44. catfink

    catfink

    Joined:
    May 23, 2015
    Posts:
    176
    So - I don't have any of the problems people are reporting here when upgrading, I have a completely different problem that for the past day I have been unable to shift.
    In the editor if I run my game everything renders perfectly, no errors all good.
    I build a windows 64bit build and all the textmeshpro text looks like scrambled dots - completely unreadable. No errors in the log for the standalone build.

    Any ideas what might be causing this, my project is error free, I'm currently running a scan on it which will take hours but if I run the textmesh demo scenes they render fine in a build, only my scenes get scrambled text.

    Unity 2018.3.1 and TextMeshPro 1.3.0
     
  45. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    Can you post an image of that?

    Did you change any build settings like using texture compression or something?

    Just for testing, create a new scene with a single text object using one of your font asset and see if that renders correctly.
     
  46. catfink

    catfink

    Joined:
    May 23, 2015
    Posts:
    176
    upload_2019-1-17_23-58-39.png

    The above dots are supposed to be text and numbers .. the text above it is standard unity font.
    I haven't changed any texture compression settings or anything like that and this was working fine in the previous project which was running Unity 5.6 and I don't remember the version of textmeshpro.

    It does still render correctly run in the editor, only the build produces this scrambled result.
     
  47. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    Try creating a new scene using the same font asset that produces the dots. Let me know if that still produces dots.
     
    catfink likes this.
  48. catfink

    catfink

    Joined:
    May 23, 2015
    Posts:
    176
    Just building the scene now - the project scan finished and did not find any files in my entire project that need guid updates.
     
  49. catfink

    catfink

    Joined:
    May 23, 2015
    Posts:
    176
    OK - I built a new scene with a single textmeshpro object in it and that rendered ok. I then dragged the ui prefab that creates the problem image I posted above into that scene and that also renders ok. So it would appear the problem only occurs when the ui prefab is in the original scene it was made in from unity 5.6.
     
  50. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    Does that Prefab contain a Canvas? It is possible the Prefab got confused about the Additional Shader Channels where I have seens weird random behavior. If that is the case, you will need to reconstruct the prefab as the serialized data got confused.

    If not the Additional Shader Channels, I am not sure but check if the atlas on the material does in fact point to the correct atlas texture from the font asset. If it did not, that would not explain why it works in the editor but who knows.

    Most likely the serialized data related to the Prefab got confused somehow. If so try recreating it or changing one property and applying the change to see if that fixes it.