Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice

Text Mesh Pro - The Ultimate Text Solution for Unity - Powerful & Flexible - Advanced Text Rendering

Discussion in 'Assets and Asset Store' started by Stephan-B, May 29, 2014.

Thread Status:
Not open for further replies.
  1. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,685

    Thanks,
    I will check as soon as I get home. !!
     
  2. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    Check the scale X and Y in the Debug section of the Material inspector to make sure those are set to 1.

    Next check the Gradient Scale in the same section and make sure that it is the same as Padding + 1.

    Next make sure that the texture size width and height is also correct.

    I have run into situations where these values were changed.

    Next if you are using Unity 5.6 and just upgraded from 5.5, make sure you also upgrade to the release of TMP for Unity 5.6 as Unity added a new "Shader Channels" on the Canvas which need to be set which this new version does.
     
    superzat likes this.
  3. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,685
    @Stephan_B ,
    Hi, So I built out the program with AutoGraphics, API. I swapped out to OpenGL2, and OpenGL3. Neither produced a positive result. Each produced the same error in Xcode, as before.

    WARNING: Shader Unsupported: 'TextMeshPro/Mobile/Distance Field' - Pass '' has no vertex shader

    ERROR: Shader Shader is not supported on this GPU (none of subshaders/fallbacks are suitable)WARNING: Shader Unsupported: 'TextMeshPro/Mobile/Distance Field' - Setting to default shader.

    Puzzled.
     
  4. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    Something is off somewhere as I am using the same settings and it works on my end.

    Just for testing see if you get the same results using Unity 5.6.2p2 with a new install of TMP using Example Scene 17. When you install the new version of TMP, make sure the TMP DLLs are named "TextMeshPro-1.0.55.56.0b11" in case you ended up with the wrong version of the Asset.
     
    Last edited: Jul 16, 2017
  5. superzat

    superzat

    Joined:
    Mar 26, 2017
    Posts:
    6

    Thank you for the help. I did every thing said and still having the same problem.
     
  6. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    Based on the image you provided, it appears that not all letters are affected by this. Unless I am missing some details from the image. If only a few letters are affected, please provide me with a Repro project or scene via email. Make sure the link to this repro is private in case you are using other assets and all.

    I'll be more than happy to take a look to figure out why this is happening in your case.
     
    superzat likes this.
  7. superzat

    superzat

    Joined:
    Mar 26, 2017
    Posts:
    6

    It seems like only the letters in the center of screen are effected. I sent a P.M with the a link to the Repro project.
     
  8. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,685

    Ok, I am installing Unity 2017.1.0f3......
    For Components, I am selecting.....
    Standard Assets, Android Build Support, iOS Build Support, tvOS, Build Support, Linux Build Support.

    I will test then let you know.

    Thank you.
     
  9. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    Make sure you have PerspectiveFiltering disabled (set at zero) to see if that makes a difference. This feature is also located in the debug section of the material inspector.
     
    superzat likes this.
  10. superzat

    superzat

    Joined:
    Mar 26, 2017
    Posts:
    6
    http://imgur.com/vqgfiTq

    I think setting PerspectiveFiltering at zero fixed it! Thank you so much!

    Edit: Scratch that, even with PerspectiveFiltering set to zero it broke again, But I found out what did fix it for me. I set the Game window from 16.9 to Free Aspect and that fixed it
     
    Last edited: Jul 17, 2017
    Stephan_B likes this.
  11. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,685
    @Stephan_B Thank you for your help.

    The update in Unity, to 2017.1 has worked!
     
    Stephan_B likes this.
  12. Dryn27

    Dryn27

    Joined:
    Dec 10, 2016
    Posts:
    11
    Hi!! this tool is awesome. But I get this error when my mouse goes from any window to the "Scene" window:

    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)

    I have Unity 2017.1.03f
    What Could it be??
     
  13. Dryn27

    Dryn27

    Joined:
    Dec 10, 2016
    Posts:
    11
    Woops, I'll answer myself: after browsing over the internet I found that there is an updated version of TextMesh Pro that fixes this error :D
     
    Stephan_B likes this.
  14. AhrenM

    AhrenM

    Joined:
    Aug 30, 2014
    Posts:
    74
    Could I score that link or package Dryn27? I just pulled TMP down from the asset store into 2017.2.0b2 and my event log is getting spammed with that and other errors.

    Also can TMP support emissive materials?

    A.
     
  15. AhrenM

    AhrenM

    Joined:
    Aug 30, 2014
    Posts:
    74
    Ok, so the version on the asset store throws the BeginAnimatedCheck errors. When I downloaded the latest version here:
    https://forum.unity3d.com/threads/textmesh-pro-now-available-from-unity.458634/#post-3104651

    I get this error on initializing the package....
    NullReferenceException: Object reference not set to an instance of an object
    TMPro.TMP_Settings.get_defaultFontAsset () (at <454f2973f89348aa975b66532b873929>:0)
    TMPro.TextMeshPro.LoadFontAsset () (at <454f2973f89348aa975b66532b873929>:0)
    TMPro.TextMeshPro_OnValidate () (at <454f2973f89348aa975b66532b873929>:0)
    ... but not when I opened up TMP into a 'clean' project.

    And these two error's on any attempt to do anything TMP on both clean and working project.
    NullReferenceException: Object reference not set to an instance of an object
    TMPro.TMP_Text.FillCharacterVertexBuffers (Int32 i, Int32 index_X4, Boolean isVolumetric)
    TMPro.TextMeshPro.GenerateTextMesh ()
    TMPro.TextMeshPro_OnPreRenderObject ()
    TMPro.TextMeshPro.Rebuild (CanvasUpdate update)
    TMPro.TMP_UpdateManager.OnCameraPreRender (UnityEngine.Camera cam)
    UnityEngine.Camera.FireOnPreCull (UnityEngine.Camera cam) (at C:/buildslave/unity/build/artifacts/generated/common/runtime/CameraBindings.gen.cs:741)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)

    MissingMethodException: Method not found: 'UnityEngine.Mesh.Clear'.
    TMPro.TextMeshPro.SetArraySizes (System.Int32[] chars)
    TMPro.TMP_Text.ParseInputText ()
    TMPro.TextMeshPro_OnPreRenderObject ()
    TMPro.TextMeshPro.Rebuild (CanvasUpdate update)
    TMPro.TMP_UpdateManager.OnCameraPreRender (UnityEngine.Camera cam)
    UnityEngine.Camera.FireOnPreCull (UnityEngine.Camera cam) (at C:/buildslave/unity/build/artifacts/generated/common/runtime/CameraBindings.gen.cs:741)

    Using 2017.0.0b2, tried with both the normal and new .NET profiles.
     
  16. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    The link is in the top sticky TextMesh Pro thread in the Unity UI & TextMesh Pro section of the user forum. Here is a link to that thread / post https://forum.unity3d.com/threads/textmesh-pro-now-available-from-unity.458634/#post-3128659

    As far as Unity 2017.2 is concerned, I need to create a new version for that which should be available later this week.

    When updating to a new release, remember to review the release notes and that you have to remove the previous package before installing the new one.
     
  17. AhrenM

    AhrenM

    Joined:
    Aug 30, 2014
    Posts:
    74
    Thanks for that. I'll hang out for it. Also for emissive text is that the glow settings? I have an odd case where I need some text to be visible with effectively no light in the scene.
     
  18. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    When using the normal SDF Shaders (ie. not the surface versions) the text is unlit (ie. does not take into consideration scene lighting) and as such you could be able to fake emissive looking text using glow.
     
  19. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,685
    Hi, I followed the link to the patch, now I am confused in that, gone seems to be the TextMesh Pro component. Instead we have the Text Mesh Pro Floating Text, which has no variable for the Custom TextMeshPro font, nor a variable for text as a string. !!!

    What I do have is the ability to create a "Text Mesh Pro - Input Field". This has sub objects (children), which one is a Text Mesh Pro UGUI. However, the variable in the Inspector, Font Asset, can not hold the Custom Fonts, I have created. As such, any text I write is unseen.

    What the hell is going on!??


    So randomly, as of now, my project is at an absolute stand still.
     
    Last edited: Jul 18, 2017
  20. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    When updating to a new release of TextMesh Pro, you must first remove the previous version by deleting the "TextMesh Pro" folder making sure that you back up any files or asset you may have saved in this folder hierarchy. Also make sure you review the setting of the TMP Settings files as it will be overwritten. Most importantly back up the project first.

    Next, which version of TextMesh Pro were you using? The paid version with source code or the free version (dll only)? Due to how the creation process of dll works where the GUIDS of scripts and assets change, these two version are not compatible with each other.

    If you are using the paid version, updates for it are available on the TMP user forum as they have been over the past several years.

    Once I have more information from you, we will sort this out and get you back up and running.
     
  21. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,685
    Hi,
    It seems to be working again (via TMP, from Google Drive link), but I need to recreate any TMP unit in my scene, as the ones that were there before, while now do have the proper component again, are not rendering the text that it should.

    I have left in below my original repsonse, so you can see the entire process that I went thru with this issue. Quite an odd one and not of the standard I would expect from Unity.


    Having said that, I hope it gets cleared up soon, so no gltiches can occur.
    Best,
    Ren




    --Original Post: My Process---
    Hi,
    So, I updated Unity to 2017, yesterday. There was no issue regarding TextMesh Pro at that time. Today, I needed to edit some TextMeshPro units. It was at this time I noticed the error, occurring in the console....... At time, of select one unit, in the Hierarchy, the common error, we have seen occurred...

    NullReferenceException: Object reference not set to an instance of an object
    TMPro.TMP_Settings.get_defaultFontAsset () (at <454f2973f89348aa975b66532b873929>:0)
    TMPro.TextMeshPro.LoadFontAsset () (at <454f2973f89348aa975b66532b873929>:0)
    TMPro.TextMeshPro_OnValidate () (at <454f2973f89348aa975b66532b873929>:0)


    ... that said, Google showed the solution as to downloading a version of TextMesh Pro from a Google Drive. Which I did dowload and import (* I did not delete the current TMP (from Asset Store (Free))). At that point, once going back into the project, any previous TextMeshPro unit, was now occupied by different components. I can't recall the name, but I think it was "Nothing Text".

    At this time, I read your reply and simply deleted all TextMesh Pro, from the Project folder. I reimported, the TextMeshPro (from the Google Drive link). At this time, the TextMeshPro component, had now returned, to all units in the scene that has a TMP component prior. However, the text, from the text field was not being rendered in scene.

    As such, I simply created a TMP from scratch and it seems to be working.
     
  22. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    Provided the previous version of the asset is removed before importing the new one, there should be no issue and all objects / scenes should work as expected.

    When you imported the newer release on top of the previous one, this could result in errors and provided nothing was saved, should be easily fixed by (as you did) remove the current "TextMesh Pro" folder and then re-importing the correct release.

    As to why we have to delete the previous release, that is simply due to the Asset Importer not being an installer. The Asset Importer is very primitive and can only add or overwrite files. It has no idea what to do with files that should be removed, renamed, etc.

    If the problems persist on your end, please send me a PM with a Repro of the Project and I can take a closer look.
     
  23. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,685


    Ok,
    As I say, I suppose the only error on my end then was the not deleting the existing TMP before importing the new.

    I may have to fiddle each of the dozen or so TMP elements that I have, but that's about it.


    So, just for the future, when I reimport from the store, an asset, I have never had any issue. Is it a different beast via the asset package importer?
     
  24. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    It really depends on the Asset Package. Like I mentioned the Asset Importer is very primitive so if the new (upgraded) Asset simply needs to update some files then it will work fine. But if some files need to be removed or have been renamed or anything more than basic trivial stuff, it will run into issues.The Asset Importer is basically the same as unzipping the new package on top of the old.

    Asset packages are becoming more and more complex and need an installer which is something being worked on at Unity.
     
    renman3000 likes this.
  25. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,685
    Nice one!
    And thanks.
     
  26. 0x7C00

    0x7C00

    Joined:
    May 18, 2014
    Posts:
    24
    Hi

    I am experiencing some shader errors when TextMesh Pro is in "Plugins" folder in my project. I am using TextMeshPro-1.0.55.2017.1.0b11 with Unity 2017.1. Any possible fixes?

    Code (csharp):
    1. Shader error in 'TextMeshPro/Distance Field': failed to open source file: 'TMPro_Properties.cginc' at line 126 (on d3d11)
    2.  
    3. Compiling Vertex program with UNDERLAY_ON
    4. Platform defines: UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME
     
    Last edited: Jul 19, 2017
  27. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    I would suggest re-importing the entire Shaders folder as this appears to be an import issue / shader compilation issue that I have seen from time to time.
     
  28. 0x7C00

    0x7C00

    Joined:
    May 18, 2014
    Posts:
    24
    Indeed, re-import of the "Resources\Shaders" folder seems to resolve the problem, thanks!
     
    Stephan_B likes this.
  29. EvalDaemon

    EvalDaemon

    Joined:
    Aug 8, 2013
    Posts:
    107
    After 2017.1 update TextMeshPro causes Unity crash upon doing a windows build every time. Even if the asset is just loaded in assets and not even used in scene. I also do not have the examples folder loaded. Right not it is completely unusable and I had to remove it from the project. Here is some info.


    Unity Editor [version: Unity 2017.1.0f3_472613c02cf7]

    Unity.exe caused an Access Violation (0xc0000005)
    in module Unity.exe at 0033:414cf73a.

    Error occurred at 2017-07-19_174546.
    C:\Program Files\Unity\Editor\Unity.exe, run by Charles.
    27% memory in use.
    32709 MB physical memory [23737 MB free].
    65477 MB paging file [55659 MB free].
    134217728 MB user address space [134214963 MB free].
    Read from location 00000008 caused an access violation.

    Context:
    RDI: 0x00000001 RSI: 0x005fab98 RAX: 0x00000000
    RBX: 0x0ccccccc RCX: 0x00000000 RDX: 0x00000000
    RIP: 0x414cf73a RBP: 0x075f6040 SegCs: 0x00000033
    EFlags: 0x00010202 RSP: 0x005faae0 SegSs: 0x0000002b
    R8: 0x00000008 R9: 0x00000000 R10: 0x00000000
    R11: 0x00000000 R12: 0x00000000 R13: 0x00000256
    R14: 0x005faf80 R15: 0x005fb478

    Bytes at CS:EIP:
    4d 0b 0c c8 4d 0b 54 c8 08 4d 0b 5c c8 10 49 0b

    Module 1
    C:\Program Files\Unity\Editor\OpenRL_pthread.dll
    Image Base: 0x80000000 Image Size: 0x0000f000
    File Size: 42496 File Time: 2017-07-07_072120
    Version:
    Company: Open Source Software community LGPL
    Product: POSIX Threads for Windows LPGL
    FileDesc: MS C 32 bit
    FileVer: 2.9.0.0
    ProdVer: 2.9.0.0

    Module 2
    C:\Program Files\Unity\Editor\FreeImage.dll
    Image Base: 0x80000000 Image Size: 0x005e0000
    File Size: 6125568 File Time: 2017-07-07_072140
    Version:
    Company: FreeImage
    Product: FreeImage
    FileDesc: FreeImage library
    FileVer: 3.11.0.0
    ProdVer: 3.11.0.0

    Module 3
    C:\WINDOWS\system32\nvspcap64.dll
    Image Base: 0x80000000 Image Size: 0x002b1000
    File Size: 2800296 File Time: 2014-11-06_120634
    Version:
    Company: NVIDIA Corporation
    Product: NVIDIA GeForce Experience
    FileDesc: NVIDIA Capture Server Proxy
    FileVer: 16.13.65.2
    ProdVer: 16.13.65.2

    Module 4
    C:\WINDOWS\SYSTEM32\xinput1_3.dll
    Image Base: 0x00400000 Image Size: 0x0001e000
    File Size: 107368 File Time: 2007-04-04_195422
    Version:
    Company: Microsoft Corporation
    Product: Microsoft® DirectX for Windows®
    FileDesc: Microsoft Common Controller API
    FileVer: 9.18.944.0
    ProdVer: 9.18.944.0

    Module 5
    C:\Program Files (x86)\DisplayFusion\Hooks\AppHookWIN6064_425D2191-5422-41DE-A9AF-2CDDC6AF41DA.dll
    Image Base: 0x80000000 Image Size: 0x00070000
    File Size: 447456 File Time: 2016-08-05_144238
    Version:
    Company: Binary Fortress Software
    Product: DisplayFusion Hook
    FileDesc: DisplayFusion Hook
    FileVer: 8.0.0.16
    ProdVer: 8.0.0.16

    Module 6
    C:\Program Files (x86)\Norton AntiVirus\Engine\22.9.4.8\buShell.dll
    Image Base: 0x480c0000 Image Size: 0x00304000
    File Size: 3145336 File Time: 2017-05-11_054726
    Version:
    Company: Symantec Corporation
    Product: Backup
    FileDesc: Backup Shell
    FileVer: 10.4.2.20
    ProdVer: 10.4.0.0

    Module 7
    C:\Program Files (x86)\Norton AntiVirus\Engine\22.9.4.8\ccSet.dll
    Image Base: 0x5ac40000 Image Size: 0x00072000
    File Size: 459400 File Time: 2017-05-11_054742
    Version:
    Company: Symantec Corporation
    Product: Symantec Security Technologies
    FileDesc: Symantec Settings Manager Engine
    FileVer: 14.1.1.9
    ProdVer: 14.1.1.9

    Module 8
    C:\Program Files (x86)\Norton AntiVirus\Engine\22.9.4.8\ccIPC.dll
    Image Base: 0x5ad50000 Image Size: 0x0003f000
    File Size: 245896 File Time: 2017-05-11_054744
    Version:
    Company: Symantec Corporation
    Product: Symantec Security Technologies
    FileDesc: Symantec ccIPC Engine
    FileVer: 14.1.1.9
    ProdVer: 14.1.1.9

    Module 9
    C:\Program Files (x86)\Norton AntiVirus\Engine\22.9.4.8\ccVrTrst.dll
    Image Base: 0x5add0000 Image Size: 0x00021000
    File Size: 117384 File Time: 2017-05-11_054744
    Version:
    Company: Symantec Corporation
    Product: Symantec Security Technologies
    FileDesc: Symantec Trust Validation Engine 64 bit
    FileVer: 14.1.1.9
    ProdVer: 14.1.1.9

    Module 10
    C:\Program Files (x86)\Norton AntiVirus\Engine\22.9.4.8\ccLib.dll
    Image Base: 0x5aed0000 Image Size: 0x000f5000
    File Size: 991368 File Time: 2017-05-11_054744
    Version:
    Company: Symantec Corporation
    Product: Symantec Security Technologies
    FileDesc: Symantec Library
    FileVer: 14.1.1.9
    ProdVer: 14.1.1.9

    Module 11
    C:\WINDOWS\SYSTEM32\MSVCR100.dll
    Image Base: 0x5afd0000 Image Size: 0x000d2000
    File Size: 829264 File Time: 2011-06-11_021538
    Version:
    Company: Microsoft Corporation
    Product: Microsoft® Visual Studio® 2010
    FileDesc: Microsoft® C Runtime Library
    FileVer: 10.0.40219.325
    ProdVer: 10.0.40219.325

    Module 12
    C:\WINDOWS\SYSTEM32\MSVCP100.dll
    Image Base: 0x5b0b0000 Image Size: 0x00098000
    File Size: 608080 File Time: 2011-06-11_021538
    Version:
    Company: Microsoft Corporation
    Product: Microsoft® Visual Studio® 2010
    FileDesc: Microsoft® C Runtime Library
    FileVer: 10.0.40219.325
    ProdVer: 10.0.40219.325
     
  30. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    As you update to a new version of Unity, you also need to update to the matching version of TMP (in this case the release for Unity 2017.1). A link to download the latest release of TMP for Unity 2017.1 is available in the top sticky post in the Unity UI & TextMesh Pro section of the user forum.

    There are also numerous posts in this thread covering this information.

    When updating to a new release of TextMesh Pro, please be sure to review the release and upgrade notes. You will need to remove the previous TextMesh Pro package before importing the new one. This is done by deleting the "TextMesh Pro" folder. Be sure to back up your project first and any files / assets you may have saved inside the TMP folder hierarchy. Be sure to review any settings you may have changed in the TMP Settings file, Style Sheets, Sprite Assets, etc.

    If you still have issues after following these steps and updating to the Unity 2017.1 release of TMP, then please send me a PM with a Repro of the project so I can take a look at it or simply submit a bug report via Unity's bug reporter.
     
  31. AhrenM

    AhrenM

    Joined:
    Aug 30, 2014
    Posts:
    74
    Why the hard binding with the Unity version? From 5.6 to 2017 I can understand but from 2017.1 to 2017.2?
    Are there breaking changes?

    Whatever is going I'm seeing the "Method not found: 'UnityEngine.Mesh.Clear'" error out of ProCore(Builder) tooling as well, so it looks like they have the same issue. :-(
     
  32. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    Almost every release lately has included API changes affecting TMP which requires separate releases (which is a pain).

    Having said that, Unity 2017.2 does not and as far as I know this UnityEngine.Mesh.Clear hasn't changed either so I am not sure why we are running into this particular error.

    I'll poke some people internally to try to figure out why we are getting this error.

    P.S. As I mentioned in a previous post, I am planning on release a new version this weekend including one for Unity 2017.2.
     
  33. altugs

    altugs

    Joined:
    Jan 14, 2017
    Posts:
    17
    Is it possible to add keyframes and animate "Dilate" on face settings?
     
  34. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    You can only animate material properties using the Animation Editor when using the normal TMP component. This does not work with the TMP UGUI component which uses a CanvasRenderer. Although both components use the same material inspector, the Animation Editor / CanvasRenderer do not play nice with each other.

    I haven't played with this in a long while so you'll need to test these things but I think it could be possible to fake this out by setting the inspector in debug mode or maybe by creating the animation using a normal TMP component and then using the same animation on the TMP UGUI object.
     
  35. CC_Nexus

    CC_Nexus

    Joined:
    Jul 27, 2012
    Posts:
    6
    Hello i have been having trouble trying to get TextMeshPro working today, this is my first time using the asset and it was downloaded and imported today for the first time.

    My unity version is 2017.1.0f3
    TextMeshPro version is 1.0.55.0b11 (as listed on my asset store download page)

    Does anyone have any advice on how to resolve this issue? it seems to be related to the shader adjustments in the inspector (the error is spammed in console when that is open)

    edit: i have done a reinstall of Unity and TMP both today to be sure, with the same resulting error
     
  36. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    Since you are using Unity 2017.1, you also need to install the release of TextMesh Pro for Unity 2017.1. Since there was an issue with the Asset Store Tools where it was not possible to upload packages for Unity 2017.1, I provided a link to download this release in the sticky TextMesh Pro post in the Unity UI & TextMesh Pro section of the forum.

    Here is a link to this post which include a link to download the release for Unity 2017.1.
     
  37. Xarbrough

    Xarbrough

    Joined:
    Dec 11, 2014
    Posts:
    1,184
    This product is so great! :)

    However, I'm missing one thing: Is it possible to increase the glyph mesh vertex resolution?

    GlyphMesh.PNG
    Because I am doing 3D mesh deformation on the text component, I'd like to increase the number of triangles on the individual glyph planes, so that I can bend large text to fit onto curved surfaces. For example: Instead of two triangles for the 'm', I'd like to have the glyph rendered onto a 10x10 triangle plane.

    Is this already possible? If not, this would be my only feature request.
     
  38. CC_Nexus

    CC_Nexus

    Joined:
    Jul 27, 2012
    Posts:
    6
    That was indeed the problem, thank you very much, i have been looking forward to using this asset, great work :)
     
  39. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    When a text object is processed (generated) the TMP_Text.textInfo data structure gets populated. This data structure contains information about the text object, each character, word, line, link, etc. It also contains TMP_Text.meshInfo[materialIndex] which contains the geometry of the text itself.

    So if you look at the AnimatingVertexAttributes and the related scripts like VertexJitter.cs, you can see how the vertex attributes (in this case vertices position and vertex colors) are being manipulated.

    In order to apply a smooth bending FX to the text, you would simply need to tessellate the geometry and modify the corresponding uvs and vertex colors.
     
    Xarbrough likes this.
  40. Xarbrough

    Xarbrough

    Joined:
    Dec 11, 2014
    Posts:
    1,184
    Thank you! Sounds good, I've just tried it and it seems to work well.
     
    Stephan_B likes this.
  41. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,685
    Hi there,
    I have multiple TMP units, my issue is that, anytime I change an outline colour on one, it changes the outline colour on any other, (who has the same material). Do I really have to create a new material for any TMP that I require a different outline colour on?

    I know nothing about shaders etc, but a bit disappointing.
    Thanks
     
    Last edited: Jul 24, 2017
  42. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    This is explain in the TextMesh Pro FAQ Question 1 available here http://digitalnativestudios.com/forum/index.php?topic=890.0

    To provide addition insight on this see this additional information below.

    Let's assume you have 100 text objects where you are using 5 different outline colors split between these 100 objects.

    You could (A) have a unique material for each text object which would give you unique control over each material and its properties but result in 100 draw calls given in Unity and most game engines, draw calls and the ability to batch them is based on the number of unique materials used.

    Or (B) since you have 5 different outline colors, you would create (1) Material Preset for each variation of Outline color so in this case 5 material presets. These 5 material presets would be split between these 100 objects (let's assume 20 for each type to keep things simple) and there given we are now only using 5 unique material between these 100 objects, we would only get 5 draw calls which is much more efficient.

    In Unity, objects which share the same material will see changes to such material reflected on all objects which share this material. When you want an object to have a unique material, you can use instances of these material. This is standard behavior in Unity which gives the user full control over their material.

    Managing various visual styles for your different fonts is done by creating and using material presets which is a key feature of TextMesh Pro. This makes it easy to manage these styles and avoids resource duplication. Understanding Material Presets is essential. See the following video about this.
     
  43. cellarmation

    cellarmation

    Joined:
    Jan 17, 2015
    Posts:
    30
    I am trying to extract the dimension of a label so that I can position a separate GameObject taking into account the actual size of the label. I have managed to do with some success, but I am having some issues. I am currently doing this configuring the label as needed, then setting the property "autoSizeTextContainer" to true. Afterwards I use the size of the rectTransform in calculations.

    The attached image shows the effect I am trying to get; in this example the title label is shifted out to the left to be further out than the widest label on the ticks.

    I have found that the rectTransform does not get re-evaluated as soon as the label's content changes, sometimes it takes a few frames for it to be resized. This results in the positioning of other GameObjects lagging behind by a few updates. Is there anyway to force the size of the text container / rectTransform to be updated in a specific frame, or even just to determine when an update has occurred?

    Thanks,
     

    Attached Files:

  44. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    If you are using the Layout System (new UI), there is no easy way to force the RectTransform to be updated.

    Having said that, have you looked at using TMP_Text.preferredWidth which would give you the width of the text object where you should not have to worry about the size of the transform itself?

    Alternatively, you can also use the TMP_Text.textInfo.characterInfo[index of character] or find the last character of a line using TMP_Text.textInfo.lineInfo[line number] and get the last character and lookup in the characterInfo its top right position. This information would allow you to calculate how to adjust the position of the text object or your other object without having to mess with the size of the RectTransform.
     
  45. hgrayvivox

    hgrayvivox

    Joined:
    Mar 3, 2017
    Posts:
    15
    I'm seeing an oddity with TMP dropdown menus inside of a masked area. Unity 5.5.0f3 (Mac), TMP 1.0.55.55.0b11.

    Repro:
    - Create canvas and add two UI panels (or any container GO)
    - Add a TMP dropdown into each
    - Add a mask on only one of the panels

    Results:
    - The unmasked menu works as expected
    - The masked menu will show the graphics (checkmark, background, and label) but will not display the text for each of the menu items.
     
  46. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    There is some weirdness with the UI Mask. I suggest you replace the UI Mask by the 2D RectMask which is more efficient. You can remove the image component and CanvasRenderer from that object that had the UI Mask.
     
  47. hgrayvivox

    hgrayvivox

    Joined:
    Mar 3, 2017
    Posts:
    15
    Like a charm. Thanks Stephan!
     
  48. blaager

    blaager

    Joined:
    Jan 5, 2014
    Posts:
    3
    There seems to be a bug with TMP's InputField on WebGL when running in a broswer. Unity 2017.1.0f3 TMP 1.0.55.55.0b11, Scripting Runtime Version Experimental (.NET 4.6 Equivalent).
    Just having an TMP InputField on a canvas throws an exception:

    InvalidOperationException: Operation is not valid due to the current state of the object.
    > Rethrow as TypeInitializationException: The type initializer for 'System.Globalization.CharUnicodeInfo' threw an exception.

    Removing the TMP InputField prevents the exception. The stable runtime also doesn't seem to throw. Repros fairly easily: create a new project, add a TMP InputField, switch to .NET 4.6 runtime, make a webgl build and run in the browser (I used Edge, not sure if this matters). Probably want to use a development build so you can see the exception in the console.
     
  49. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    6,588
    Can you test with the release of TMP for Unity 2017.1?

    See this post above with links and information about how to download it.
     
  50. blaager

    blaager

    Joined:
    Jan 5, 2014
    Posts:
    3
    That seems to be the same version I'm already using (1.0.55.0b11)
     
Thread Status:
Not open for further replies.