Search Unity

TextMesh Pro is now free and to be integrated

Discussion in 'General Discussion' started by Dave-Carlile, Feb 28, 2017.

  1. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    TextMesh Pro is not built into Unity yet. It still has to be download either from the Asset Store (Free dll only version) or from the TextMesh Pro user forum (Paid - Source Code version).

    So if you have not already registered to the TextMesh Pro user forum, please do so. You will need to supply your invoice number to get approval. Once approved, you will find the latest releases of TextMesh Pro in the "TMP - Alpha, Beta and Final Releases" section of the user forum.
     
  2. Karsten

    Karsten

    Joined:
    Apr 8, 2012
    Posts:
    187
    I really hope you dont clutter the so nice and clean root of uGui with your components, they look so over-engineered and clumpsy, dont get me wrong, i hope the best for you and this project,we need hyperlinks(underline text button),more dynamics in text ect., but it would be sad to lose the swift and lightweight workflow of the current uGui system.I wish you would just put all that features where possible somehow into the already existing "rich text" markup, so who wants a feature just use the markups.

    I wish you all best.
     
    Last edited: May 23, 2017
  3. ShareCareAnthony

    ShareCareAnthony

    Joined:
    Jun 7, 2017
    Posts:
    3
    I just upgraded to Beta and I get this error

    TextMesh Pro/Scripts/TMP_Text.cs(844,19): error CS0246: The type or namespace name `InlineGraphicManager' could not be found. Are you missing an assembly reference?
     
  4. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    Did you just upgrade Unity or TextMesh Pro?

    What version of TextMesh Pro are you using?

    The InlineGraphicManager was deprecated several versions ago and is no longer necessary. I suspect you might be have scripts (user created ones) that will need to be updated.

    Once I have more information about the version(s) you are using, I'll be able to provide better information to you.
     
  5. ShareCareAnthony

    ShareCareAnthony

    Joined:
    Jun 7, 2017
    Posts:
    3
    After talking with my team, the thing we modified is obsolete, so we will probably remove the old for new.
     
    Stephan_B likes this.
  6. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    Is it right that TMP can't handly HDR colors on Text? Would I have to customize shaders to make that work? I need that for a bloom effect I'm using on the UI.
     
  7. d34thst4lker

    d34thst4lker

    Joined:
    Aug 4, 2013
    Posts:
    124
    I just came across this and I am trying to understand how this TMP works exactly.
    Until now I have been using UGUI (Canvases etc) and I was wondering what is the different between that and TMP?
     
  8. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,147
    TextMesh Pro is simply a replacement for the Text component. My primary reason for purchasing it was support for easy insertion of links. I recommend checking out the Asset Store page for a full list of features and it has quite a number of good ones.

    https://www.assetstore.unity3d.com/en/#!/content/84126

     
    Last edited: Jun 8, 2017
  9. d34thst4lker

    d34thst4lker

    Joined:
    Aug 4, 2013
    Posts:
    124
    So just to confirm, Canvases and UGUI is still being used except instead of using a text label a TMP component will be used instead?
     
  10. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,147
    Right. TMP is only a replacement for the Text component. Everything else is basically the same.
     
    Last edited: Jun 8, 2017
  11. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    As @Ryiah stated,

    TextMesh Pro is a replacement for Unity's text components. There are two TMP text components. One located in 3D Object - TextMeshPro - Text which replaces the 3D Text also known as TextMesh. The other is located in UI - TextMeshPro - Text and is a replacement for the UI.Text component.

    TextMesh Pro also includes its own Text Input Field and Drop Down component.
     
    Martin_H and Ryiah like this.
  12. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    Is it right that TMP can't handly HDR colors on Text? Would I have to customize shaders to make that work? I need that for a bloom effect I'm using on the UI and I couldn't find any info about using HDR color ranges in TMP anywhere.
     
  13. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
  14. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    Thanks a lot! That looks like it should solve my problem. I'll try it.

    Edit: it does seem like that's part of a dll I can't edit?!
    I just duplicated the shader, named it HDR and hardcoded a multiplier for the _FaceColor, which is close enough to what I want I guess.

    I don't understand why HDR isn't on by default. Is there any drawback I'm not aware of? I mean no one is forcing you to crank it beyond 1 if you don't want to and it's always nice to have options imho.
     
    Last edited: Jun 9, 2017
  15. d34thst4lker

    d34thst4lker

    Joined:
    Aug 4, 2013
    Posts:
    124
    Great! I would love to give this a try then!

    Thanks!
     
  16. DGordon

    DGordon

    Joined:
    Dec 8, 2013
    Posts:
    649
    Any eta on when TMP will be integrated into Unity by default?
     
  17. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    This won't happen for several months as the integrated version is a complete re-write of the tool.
     
    RG_Keith likes this.
  18. CDF

    CDF

    Joined:
    Sep 14, 2013
    Posts:
    1,311
  19. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    There is already a release of TMP available for Unity 2017.1 which addresses this API change.

    Since the Asset Store tool used to upload packages to the asset store does not work with 2017.1 yet, I have provided a link to download this release in the sticky TextMesh Pro thread in the Unity UI & TextMesh Pro section of the forum. Here is a link to this thread.
     
    elbows likes this.
  20. CDF

    CDF

    Joined:
    Sep 14, 2013
    Posts:
    1,311
    Awesome, thank you.
     
  21. RG_Keith

    RG_Keith

    Joined:
    Mar 14, 2017
    Posts:
    35
    I know it's a broad question but if we go ahead and integrate TMP as it is now, how much work would have to be redone when the integrated version is released?
     
  22. nngafook

    nngafook

    Joined:
    Sep 7, 2013
    Posts:
    5
    So how do people who did not purchase TMP, fix the
    MissingMethodException: Method not found: 'UnityEditor.MaterialEditor.BeginAnimatedCheck'
    error? I'm still getting it, and I've tried the latest build uploaded on July 6th on the asset store, and I've also tried the dll package in the other thread. Unless I'm doing something wrong, I'm still getting the error.
     
  23. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    10,140
    You're on 2017.1, right? Download the version of TMP from the latest post in this thread.
     
  24. nngafook

    nngafook

    Joined:
    Sep 7, 2013
    Posts:
    5
    Yeah I did. Still getting the error.
     
  25. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    Looks like you are still not using the correct version.

    When updating to a new release, you must first remove the previous package by deleting the previous "TextMesh Pro" folder. Then import the new package linked in the last post from the thread the @Murgilod linked.

    To verify that you are using the correct version, just look at the name of the dlls in the "TextMesh Pro/Plugins" folder. They should be named as TextMeshPro-1.0.55.2017.1.0b11.
     
  26. nngafook

    nngafook

    Joined:
    Sep 7, 2013
    Posts:
    5
    Ok, I think I figured out what I did wrong!
    I deleted the folder in the Editor, but never noticed that it didn't delete all of the contents, cause naturally the dll was in use. My bad!

    Thanks for the help folks!
     
    Stephan_B likes this.
  27. hurleybird

    hurleybird

    Joined:
    Mar 4, 2013
    Posts:
    258
    I'm getting:

    MissingMethodException: Method not found: 'UnityEditor.MaterialEditor.BeginAnimatedCheck'

    On a new, otherwise completely empty project, in 2017.1.0f3, using the Asset Store version.
     
  28. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,512
    See the post two above yours. The Asset Store version hasn't been updated to work with 2017.1 yet. You'll need to use the DLL version found here.
     
  29. hurleybird

    hurleybird

    Joined:
    Mar 4, 2013
    Posts:
    258
    Ah, that explains it. I'm actually using the old version with source which updated just fine.
     
  30. redknight158

    redknight158

    Joined:
    Jul 20, 2017
    Posts:
    18
    So I updated to Unity 2017.1, deleted my TMPro (paid version), and downloaded the 0b11 asset and imported it. However, now all of my Font and Sprite assets are unrecognizable. If I click on one, the inspector is just blank. Pretty sure I destroyed my entire project as it heavily relied on TMPro... any way to "refresh" my assets with the new TMPro?
     
  31. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    As per the IMPORTANT NOTE in the Asset Store page and my many posts about this topic, due to how the DLL creation process works where the GUIDS of the script are changed, projects created with the source code (paid version) are not compatible with the DLL only (free version) and vice-a-versa.

    I strongly recommend that users of the paid version continue to use the paid version which I will continue to support and provide updates for. New releases will continue to be available on the TextMesh Pro user forum as they have been over the past several years.

    If you have not already registered on the TextMesh Pro user forum, please do so. Note that you will need to provide your invoice number as part of the registration process. Once approved you will have access to all the TextMesh Pro releases including a release for Unity 2017.1. New releases are located in the private "TMP - Alpha, Beta and Final Releases" section of the forum.

    When upgrading to a newer release of TMP, please be sure to review the Release and Upgrade notes. As per such notes, you will need to remove the previous version of TMP by deleting the "TextMesh Pro" folder before importing the new package. Most importantly, please be sure to backup your project first as well as any files and assets you may have saved inside the TextMesh Pro folder hierarchy. Also be sure to review the TMP Settings file, Style Sheet, Sprite Asset for any changes you may have made.
     
    MechEthan likes this.
  32. redknight158

    redknight158

    Joined:
    Jul 20, 2017
    Posts:
    18
    I'm an idiot. Definitely didn't do my research. Registered for the forum, downloaded the correct asset update, installed it and everything works perfectly. As always Stephan, I'm incredibly impressed with your quick responsiveness and your continued development on one of Unity's most invaluable assets!! Thanks again!!
     
  33. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    You are most welcome and sorry about any inconvenience this may have caused you.
     
  34. MechEthan

    MechEthan

    Joined:
    Mar 23, 2016
    Posts:
    166
    @Stephan_B

    Apologies for the inane question but: as a brand new adopter of the free Asset Store version of TMP, are there any considerations I should make to ease a future upgrade to the built-in TMP coming later this year?
     
  35. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    Nothing really at this time.

    In developing this new text system, the obvious goal is to make sure it offers even greater functionality and improved performance over TMP.

    Having said that, I am also mindful of users and making sure the transition from TMP to this new system can be as smooth as possible. Like I said before, I would not want to give up on new powerful functionality for the sake of compatibility alone so there could be some migration challenges. On the other hand, a lot can be done with the API Updater so time will tell.

    As the new implementation comes along, I am / will look for opportunities to roll out some of the new stuff into TMP which could provide shorter term benefits and also help us gradually migrate over to the new system.
     
    Damjan-Mozetic and MechEthan like this.
  36. MechEthan

    MechEthan

    Joined:
    Mar 23, 2016
    Posts:
    166
    Good to know! (I do agree that long term functionality should be prioritized over compatibility.) Hope the rewrite goes well for you and thank you so much for the info!

     
    Stephan_B likes this.
  37. Emptiness

    Emptiness

    Joined:
    Jul 14, 2012
    Posts:
    33
    Hi Stephan,

    I read that you are working on to integrate TextMesh into Unity and it needs a complete re-write of the tool. Could you consider optimizing performance by solving the problem this post addresses. Maybe it's completely outside of your focus right now, but still would be awesome optimization.
    Thanks for your awesome work! :)
     
  38. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    I have been considering adding a "Static" flag to text objects which a user could enable which would combine the geometry of the text into a single texture and quad. This option would be similar to how we can turn a mesh static. This would be for when the text will not be changing.

    Please keep in mind that although on some devices having a single quad can be more efficient than many quads, on some devices fill rate is more of an issue and having a large quad of potentially lots of empty space could be slower than more geometry. GPU's are getting very efficient at pushing lots of geometry around.

    I am not sure if that feature will make the first version but it is certainly something I am considering.
     
  39. Dave-Carlile

    Dave-Carlile

    Joined:
    Sep 16, 2012
    Posts:
    967
    As long as the text isn't changing often you can draw the text to a render texture, then just display that on a single quad using the new texture. Whenever the text changes just recreate the render texture.
     
  40. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    There are a lot of TMP users doing that which works well.

    One of the additional benefit that I am after with this potential static mode is to actually combine the SDF data behind the scene so than when using a script style font or adding an outline or shadow, those effects are applied as a whole on the text object itself as opposed to per character.
     
  41. Emptiness

    Emptiness

    Joined:
    Jul 14, 2012
    Posts:
    33
    Awesome news! I'm so glad that you have the time to optimize even more this fantastic product. :)
    Thank you again! :)
     
  42. Deleted User

    Deleted User

    Guest

    I have been using TMP from quite some time. Why is TMP still beta ? facing a lot of stability issues.
     
  43. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    Beta is just a label. You should not be experiencing any stability issues. So please make sure you report any such potential issues.
     
  44. badr_douah

    badr_douah

    Joined:
    Jun 22, 2017
    Posts:
    22
    Hello ,
    i want to add chinese to my game , but i don't know which font i should download and what unicode range should i use to generate the font asset map
    can you please help ,
     
  45. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    There are several posts covering this topic. Here is a link to one such post.
     
    ctc5301 likes this.
  46. badr_douah

    badr_douah

    Joined:
    Jun 22, 2017
    Posts:
    22
    thanx a lot the video on youtube helped me solve the issue , much appreciated
     
    Stephan_B likes this.
  47. Brogan89

    Brogan89

    Joined:
    Jul 10, 2014
    Posts:
    244
    Hey, I just came across something interesting, and would like to know why it is happening.
    Using the TMP_InputField, I am getting an extra ascii characters when getting a string from the textComponent. Like
    Code (CSharp):
    1. var text = tmp_inputField.textComponent.text;
    than if i just got the text directly from the inputfield like
    Code (CSharp):
    1. var text = tmp_inputField.text;
    .
    The former would always return an extra 64 ascii code at the end of the string. I was wondering what that extra character is? or why this would be happening.
     
  48. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    The text component child of the TMP Input Field is only there to display text on screen. It should not be used to figure out the content of the text input field.

    For instance, when set to password mode, the child text component would contain "*******" whereas the input field text property would contain the actual password.
     
    MechEthan and Brogan89 like this.
  49. Brogan89

    Brogan89

    Joined:
    Jul 10, 2014
    Posts:
    244
    ah yep. Makes sense, thanks.
     
  50. boadleFTG

    boadleFTG

    Joined:
    Nov 23, 2017
    Posts:
    18
    Hi Stephan!

    Thanks for your excellent product, and congratulations on your partnership with Unity.

    We are trying to use TMP in conjunction with a set of icon atlases, so that we can concatenate text with button prompts. We have experimented with Code&Web's Texture Packer, and also with the new Sprite Packer in Unity 2017, but have not yet found a satisfactory workflow that allows us to add new glyphs to the atlas without screwing up the UVs of the existing icons.

    Is there a way to have the TMP Sprite Asset import the UV data from TexturePacker or from the Unity Sprite Atlas so that every time we make a change, the data is updated? Currently, I'm having to manually type in all the data every time we make a change.

    Thanks!