Search Unity

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

Discussion in 'Unity UI (uGUI) & TextMesh Pro' started by Stephan_B, Jan 9, 2018.

  1. RSH1

    RSH1

    Joined:
    Jul 9, 2012
    Posts:
    180
    I'm still not getting any results from the scan in 2018.3.6f1

    Having to update each label manually now.
     
  2. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    If your scenes / objects are not getting found through the scan then you might need to download / use to additional conversion files referenced in the Update Notes item #6 in the first post of this thread. Follow the link in the item 6 to get those extra files.
     
  3. gegagome

    gegagome

    Joined:
    Oct 11, 2012
    Posts:
    331
    I was really really scared but I followed the process and it worked!
     
    protopop likes this.
  4. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    Scary indeed it can appear but provided the migration procedure if followed, it should work fine as 1000's of users have already gone through this successfully.

    Having said that, it is still of most importance to always back up your project first as one never knows what gremlins might be lurking around to just mess things up.

    Glad it all worked out :)
     
  5. Antares88

    Antares88

    Joined:
    Dec 6, 2012
    Posts:
    8
    Hi, I have to upgrade a project from Unity 2017.4.4f1 to 2018.3.5f1 and the TMP migration process seems to fail.
    What I tried (every time rolling back through version control):
    - steps 1-7 of the guide in the op, with and without step 6
    - updated the Asset Store TMP in 2017.4.4f1 (I think I was not on the latest version) and then go through steps 1-7 of the guide
    - tried this alternative guide http://blog.collectivemass.com/2018/09/upgrading-textmesh-pro/

    In most cases the scan would not find any object to update. In some cases it would find some objects, but when I opened the scenes involved every text component had missing reference.

    Stephan, would it be possible to share my project with you?
     
  6. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    Absolutely. Please submit a bug report within Unity and be sure to include the project. Once you have the case # please share it with me as well.

    Assuming you are able to submit the bug report tonight, I'll take a look tomorrow.
     
    Antares88 likes this.
  7. Antares88

    Antares88

    Joined:
    Dec 6, 2012
    Posts:
    8
    Thank you! Case number is 1129212.
     
  8. Nazowa

    Nazowa

    Joined:
    Oct 30, 2017
    Posts:
    15
    I tried every method offered on these forums over the course of five days. After using the update tool for seven times and going back to backups I was left with Visual Studio not recognizing the reference to TextMeshPro components. Updated Visual Studio but did not work. In the end after a dozen removal and addition of the components from the Unity project got rid of the remaining problems. No logic or method applies 100%. Persistence will make Unity give up.

    Hang in there guys !
     
  9. domdev

    domdev

    Joined:
    Feb 2, 2015
    Posts:
    280
    getting OutOfMemoryException: Out of memory.. when conversion tool.. using unity 2018.3.8f1 any? but other apps was success
     
  10. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    What version of the TMP package are you using?
     
  11. domdev

    domdev

    Joined:
    Feb 2, 2015
    Posts:
    280
    already fix.. found out its a RAM issue I have 8gb ram but I have too many prefabs with Tmpro, what I did it I close all the apps then using conversion tool until was done
     
  12. seb1010

    seb1010

    Joined:
    Mar 3, 2015
    Posts:
    4
    Do steps 1-7 in the first post with unity 2018.3 or do I have to use 2018.1 with the steps? I upgraded from 2018.1 to 2018.3 and still confused why there's no buttton to do this
     
  13. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    The steps are applicable to converting from the legacy version of TMP to the new package manager versions.

    This process cannot be automated as it requires actions to be taken in previous versions of Unity (prior to importing the new version) like backing up your project, making sure serialization mode are set correctly, etc. more importantly, I didn't want to do anything to user projects without the user knowledge and consent.
     
  14. FernandoHC

    FernandoHC

    Joined:
    Feb 6, 2018
    Posts:
    312
    I've been trying to find an answer anywhere for this but I can't find. So sorry if this is duplicate.

    I have followed all the steps and it worked fine for every text that's part of a scene. However, every prefab with objects TextMeshProUGUI component on them now have "Missing (Mono Script)" instead of the TMP component on them, the real problem is that i have over 1k texts among prefabs so far(we will double that in the future) and it is not possible to fix them manually, as I can't even assign the script back (there is no option to do so).

    Running the GUiD remaping tool simply skips all prefabs.

    I upgraded straight from 2017.23 to 2018.3
    I already tried replacing the json files with "GUID Conversion Files.zip" (even tough my version was 1.30) it still didn't work.
    I still have my project backup (in 2017), is there anyway I can prepare the conversion better there? Maybe an automated way to fix the references without the Gui tool(which is not available on my 2017 version)
    Also, could this issue be related to the new nesting system for 2018.3?

    I tried converting the project to 2018.2 instead, tried both GUID remappers, with/without new json files in versions 1.24 and 1.30, still not picking up my prefabs.

    Update: Tried updating the current version of TMP on my 2017 version through asset store and it also caused missing references for all objects, not only prefabs, scene objects as well, there is no GUID remapper on that version.

    Update: Have tried Forcing bynaring/Forcing text, sereval times, noticed doing that will only change .asset files, that process does not touch .prefab files, which I believe is where the issue is, right? Opening my .prefab files on notepad++ gives me the impression they are binary files indeed. So at this point I've run out of forum/google resources and references on how to solve the issue.

    Last Update: turns out the binary .prefabs were the issue, I solved the Force text issue of not forcing files from binary to text by deleting the Library AND cache folders contents WHILE UNITY IS NOT OPENED. If you can, please add that information to your main post, as I'm sure other people might struggle with this.
     
    Last edited: Mar 28, 2019
  15. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    I did add the information in the first post a few weeks ago when I discovered the change made to Prefabs in 2018.3. See note the following note.

     
  16. FernandoHC

    FernandoHC

    Joined:
    Feb 6, 2018
    Posts:
    312
    There seems to be a new issue now, after this process, all my references to Sprite Assets within the TExtMeshProUGUI settings have been reset to None (TMP_Sprite Asset). I had all my components set up properly with their required sprites, could you please advise on this?
     
  17. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    You mean the Sprite Asset potentially assigned in the Extra Settings section of the TextMeshProUGUI objects?

    Make sure the path to these resources is correct in the TMP Settings.
     
  18. FernandoHC

    FernandoHC

    Joined:
    Feb 6, 2018
    Posts:
    312
    Yes exactly, each sprite asset assigned on each individual TMP component extra settings. On TMP Settings I can change the default and manage the path for Sprite Assets, which is something I haven't seen on previous versions.

    However, now the references have already been lost and I believe the only way would be by doing the whole upgrade process again and set the sprite assets folders before I run the GUID tool? Correct?

    It also seems like my previous TMP settings have been reset through this upgrade process, as I see the settings have changed from what they were previously. Possibly because I have deleted the folder, in order to be able to go trough the process, right?
     
    Last edited: Mar 28, 2019
  19. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    Make sure the path to these resources in the TMP Settings is correct based on where you have your own assets. By default Sprite Assets are expected to be loaded in "Resources/Sprite Assets/...". This won't solve the issue with the missing Sprite Assets but something that we should still make sure if correct.

    In terms of the missing reference, can you submit a bug report and include the project but a backup prior to the upgrade process. This way I can go through the upgrade on my end to figure out exactly what the issue might be. Once / if you submit the project, please provide me with the Case #.

    Alternatively, you could try to export just a single scene with relevant assets from your backup. I should be able to test just that single scene and objects contained in it.
     
  20. FernandoHC

    FernandoHC

    Joined:
    Feb 6, 2018
    Posts:
    312
    Aye, thanks for the help, appreciate that. We will manage everything internally, no need for a ticket atm, but thanks for extending your hand.
     
  21. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    I'll try to reproduce it on my end to see if I find anything.
     
  22. Riderfan

    Riderfan

    Joined:
    Jan 10, 2013
    Posts:
    484
    When I get to the point where I need to scan for the new guids, I get a dialog saying that;
    - The binaries need to be serialized in text (which they are so that seems fine.)
    - Meta data needs to be visible.

    When I change the meta from hidden to visible, Unity locks up and eventually crashes. I can not finish the migration process because Unity simply crashes when changing these settings. I've submitted a bug report on this.

    I'm (trying to) migrate to Unity 2018.3.12.f1 from Unity 2017

    How do I get all my prefabs, etc to migrate to the latest version if I can't finish the process? I really hope I don't have to redo all my fonts and rebuild all my components - that will take ages.

    It would have been better if it was possible to keep the legacy versions (that worked) and only used the integrated versions for new projects.
     
  23. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    As per step 2 outlined on the first page

    You will have to change serialization mode in the previous version of Unity. As such you will need to go back to the backup of the project and change serialization mode in Unity 2017. Then repeat the process which should then work as expected.
     
  24. Riderfan

    Riderfan

    Joined:
    Jan 10, 2013
    Posts:
    484
    Except that doesn't work. Unity crashes when I try to change the settings.

    Like I said, it would have made more sense to allow the use of legacy versions that work.
     
  25. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    Unity crashes when you change the settings in Unity 2017? This also has to be done on the backup of the project from Unity 2017 and prior to undergoing this migration process.

    This would have required supporting 3 separate version of the product which would have greatly impacted development efforts of the product overall.

    Once on Unity 2018.3, make sure you use version 1.4.1-preview.1 of TMP. You will need to select the Advanced option in the Package Manager to see preview packages..
     
  26. habitoti

    habitoti

    Joined:
    Feb 28, 2013
    Posts:
    96
    Hi,

    I am on Unity 2018.3.12.f1 and wanted to switch to built in TMP 1.4.1 now. I followed the procedures and deleted existing TMP in Assets and installed 1.4.1 package via Package Manager. No errors in log, all looks good. However, when I choose the GUID remapping tool, it scans through my whole project but doesn't find anything to fix, leaving me with all text resources being broken (missing scripts).
    What could be the issue here?

    Thanks, habitoti
     
  27. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    What version of TMP were you using prior to switching to Unity 2018.3?
     
  28. habitoti

    habitoti

    Joined:
    Feb 28, 2013
    Posts:
    96
    As far as I can tell from my Git repo history, the previous Editor DLL says 2017.3. Does that make sense, or is there any other information you‘ll need? If I can‘t find it via some file metadata, I‘d have to revive an older branch first...
     
  29. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    Can you locate one of your previously created font asset that shows a missing script and provide it to me? It is possible that it is using an alternative GUID which could have happened if in the past, you had missing script references and manually re-assigned them.
     
  30. habitoti

    habitoti

    Joined:
    Feb 28, 2013
    Posts:
    96
    That might be a stupid question, but how would I provide such an asset (like a title field using TMP) to you? I can PM you a prefab that contains such a field -- not sure you could read that then w/o any more context from my project.

    Actually I can redo the whole process easily from scratch. so starting from a well running project baseline using 2017.3 TMP (I think 1.0.56 is the TMP version then). There are no missing scripts whatsoever at that point, but as said afterwards all text resources have dangling TMP scripting. Maybe that way I can provide better information for you halfway of the process?
     
  31. aVolnov

    aVolnov

    Joined:
    Nov 29, 2014
    Posts:
    15
    Having a weird issue after migrating from 5.6 to 2019.1 (With GUID migration, I've also tried regenerating the atlasses, no change), only manifests on some Android devices so far, not in editor, untested on iOS. Everything works initially, then after a scene change the text either disappears or becomes garbled like in the attachment. Seems to be more prevalent if the resolution is downscaled. It affects all the fonts present in the game.

    Screenshot 2019-05-10 at 20.32.06.jpg

    Screenshot 2019-05-10 at 20.32.09.jpg

    The corruption is noisy and seems to depend on what's in the background (it changes when rotating the camera).

    Any idea what this is?
     
  32. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    Can you submit a bug report and include the project along with reproduction steps?
     
  33. aVolnov

    aVolnov

    Joined:
    Nov 29, 2014
    Posts:
    15
    I'll try to strip the project down for a bug report, but I can't guarantee I'll be able to.
     
  34. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    It would be great if you were able to provide a bug report / project but I certainly understand if that doesn't work out.

    Could be interesting to see if the issue occurs in previous versions of Unity 2018.x. You would have to downgrade the TMP package version to 1.3.0 but everything else should be fine for testing.

    Are you using split binary? If so see if the issue persists if you disable that.
     
  35. aVolnov

    aVolnov

    Joined:
    Nov 29, 2014
    Posts:
    15
    I'll give 2018 a try a bit later and report back. Should be quicker than trying to strip down the project.

    I have tested before without splitting the binary and got the same result, and I won't be able to publish it without splitting, it's a big game.
     
  36. aVolnov

    aVolnov

    Joined:
    Nov 29, 2014
    Posts:
    15
    @Stephan_B Here's a list of things I had tried before I found a "solution":
    • Unity 2018 LTS
    • Old shaders from the 5.6 version backup
    • GLES 3.0 only
    • GLES 2.0 only
    • Deleting shader cache
    None of this made a difference.

    Then I recreated one of the fonts from scratch, replaced a piece of text's font with it, and it stopped glitching for this particular TMP object (back in 2019.1). When I changed the font to the recreated one for every other TMP object, the issue came back. Then on a whim I set the shader for the main font material to SDF Overlay, and the issue disappeared (save for the text being rendered in front of everything in the editor scene view only). So I'm left to assume that it has something to do with the depth buffer. To add to that theory, I also noticed an alpha cutout branch texture being rendered in front of the text before replacing the shader.
     
    Last edited: May 15, 2019
  37. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    If you are able to reproduce this behavior, it would be very useful if I can get a repro project of this along with the steps.

    It is possible that some changes on the graphic side or canvas batching could be affecting all of this.

    P.S. Are you using a mixture of normal <TextMeshPro> objects and <TextMeshProUGUI> objects where these would happen to share the same font asset and material?
     
    Last edited: May 15, 2019
  38. dansav

    dansav

    Joined:
    Sep 22, 2005
    Posts:
    444
    I cannot get TextMeshPro to work in 2019.1 I've tried using the package manager, the guid remapper, and downloading from the asset store, and the instructions on this page. It cannot find the component TextMeshPro. I also threw out everything but the assets. Did something change in 2019.
     
  39. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    The steps are the same for 2019.x. The only difference is making sure that you install version 2.0.1 instead of 1.4.1.

    When you say it cannot find the components, what do you mean specifically? Are you getting errors in the console? You need to make sure you switch to .Net 4.x. for 2019.x.
     
  40. dansav

    dansav

    Joined:
    Sep 22, 2005
    Posts:
    444
    Package Manager install of 2.01
    I get this error: The type or namespace name 'TextMeshPro' could not be found (are you missing a using directive or an assembly reference?)
    Switched to .net 4.x also.
     
  41. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    A few users have run into this where is seems the package cache / project solution is getting confused. This can also happen if you are using bolt. See the following thread / post.
     
  42. skirners1

    skirners1

    Joined:
    Sep 4, 2014
    Posts:
    5
    Hello hello Stephan_B!


    I hope that you are having a nice midsummer day. I have spent the last three days trying to use the GUID tool, but without success. Now I know that it's beyond me to make it work.

    I am following the steps in the OP, trying a lot of different variations with the GUID tool. I get the "Missing (Mono Script)" message on all TMPs in my game. One step I can recommend, is to restart Unity after reimporting the essentials for TMP in step 7.

    I can see in the scan result in the tool that only a few items are found in my project. Most project prefabs with TMPs and in-scene prefabs aren't found at all. Some unity.scene objects are found for update though, maybe they are included there, or why would they be found in the scan?

    I use 4 fonts in the game, the tool finds them all. But when I run the tool in the selected (Resource/Fonts) folder, only one of them is reported updated through console output, and that one is reverted to LiberationSans. I have tried tampering with this a bit, updating the fonts manually just before by adding TMP_FontAsset to the "Missing Script" in the inspector of the font. But I mostly come up with some strange error messages after using the GUID tool. If I recreate the fonts with the "Font Asset Creator" just before the GUID tool scan, some nested TMP texts are converted as intended.

    I have (due to creative process) a very very large UI-prefab for all ingame HUD and on screen input buttons, maybe its too large for the tool to handle? I also use prefabs to save level structure data, which includes at least one TMP text object (a check point sign). Is this a related problem, since the 2018 LTS uses the new nested prefabs?

    I'm moving from LTS 2017 to LTS 2018, because of unaccounted performance drops on iOS builds. The project is 3.5 years old, so I don't want to send the whole project as a repro, and everything is so interwined it would require an unknown but substantial amount of work removing selected parts... If you want to take a look at the project, you are welcome to do so through a team viewer session. Maybe you can get some useful knowledge for the few of us who have read this far in the thread, but without any success with TMP.

    Anyway, I'll start the manual replacing of all TMPs today.


    BR
    Lucas Ivarsson
     
  43. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    Take a look at the alternate GUID conversion data set to use that version instead. It is linked in the updated notes. I believe you are running into a combination of some of your TMP related resources using the editor version of the GUID instead of the runtime one. I also believe your prefabs might be serialized as mixed or binary which is why they may not show up.

    So make sure you use the alternate conversion set.Then make sure you Asset Serialization mode in the previous version of Unity is set to Force Text. All of this should enable you to convert the project without having to redo anything.

    P.S. I am in Europe for the week so can't do the team view thing otherwise I would. The above instructions should work. Give those a try and PM me as soon as you have some results.
     
  44. Bagazi

    Bagazi

    Joined:
    Apr 18, 2018
    Posts:
    144
    Hi here,
    I got some errors with TMPro, upload_2019-7-10_11-39-34.png

    When I remove the tmpro from package manager,those errors disappear.. How can I correct them? Thanks very much
     
  45. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    What version of Unity are you running?

    The errors point to UGUI which is / will be a package (depends on the version of Unity you are using).

    There is both a local cache in the Library folder and the global package cache located in "...\AppData\Local\Unity Cache\cache". I would recommend closing Unity and deleting both of these cache and then re-starting Unity.
     
  46. Bagazi

    Bagazi

    Joined:
    Apr 18, 2018
    Posts:
    144
    I am using Unity 2019.1 . I am tryinging it by deleting and restart,thanks very much:)
     
  47. ypatelzynga

    ypatelzynga

    Joined:
    Aug 30, 2018
    Posts:
    9
    have question on different topic... I am using TMP input filed for chat system... we want to post chat message as soon as player press okay button from android key board and Done button from IOS key board... I am registering to OnSubmit event for TMP input filed and game client post message in chat window when it receives that event. This works fine with Andriod OS but it does not work well on IOS. it seems like pressing Done button on IOS does not post message all it does is hide keyboard. I tried using OnEndEdit() but it submit text in chat window even though player click out side of key board. How can i register to IoS "Done" button using TMP
     
  48. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,348
    I need to double check the behavior on iOS. Should be able to look into this over the weekend.

    P.S. Since this question is not related to the Migration to the Package Manager version of TMP, please post in the main section of the Unity forum and use the "TextMesh Pro" prefix on the post. Since this is a separate topic, it will make it easier for user to find this type of information in the future when searching the forum.
     
  49. ypatelzynga

    ypatelzynga

    Joined:
    Aug 30, 2018
    Posts:
    9
    Sorry about this... i posted my question here https://answers.unity.com/questions/1648760/textmesh-pro-ios-done-button-presstextmesh-pro-don.html
     
  50. JustinAtSama

    JustinAtSama

    Joined:
    Mar 22, 2019
    Posts:
    5
    Found a permanent solution.

    1. Navigate to Packagemanager.
    2. Select TextMeshPro and Remove it.
    3. Close Unity.
    4. Navigate to the local cache: "C:\Users\{YourUserName} \AppData\Local\Unity\cache\packages\packages.unity.com\"
    5. Delete com.unity.textmeshpro@1.4.1 folder and all folders textmeshpro@
    6. Reopen Unity (You may see errors if you forget to remove TextMeshPro via packagemanager)
    7. Navigate to package manager
    8. Select TextMeshPro.
    9. Install 1.41 or whatever version you are using.
    Errors go away and problem is fixed. :)
     
    Last edited: Jul 20, 2019