Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Official Feedback wanted : new text engine

Discussion in 'UI Toolkit' started by antoine-unity, Nov 17, 2020.

  1. Thimo_

    Thimo_

    Joined:
    Aug 26, 2019
    Posts:
    59
    Regarding the rich text possibilities. I'm using Unity 2021.2.5f and I would like to add hyperlinks to my application. The <link> tag is getting recognized in UI builder but it doesn't open Google.com for example. So I found that for TMP I have to get the link ID and then write my own Application.OpenURL() logic. I was thinking about using RegisterCallback<ClickEvent>() but this way is only working for the whole Label element. My question is, how do I make sure the <link> click event is fired and that I can use its ID in code?
     

    Attached Files:

    jGate99 likes this.
  2. HugoBD-Unity

    HugoBD-Unity

    Unity Technologies

    Joined:
    May 14, 2018
    Posts:
    490
    Hi @Thimo_ , it is on our roadmap, but it's unfortunately not yet supported.

    As you mentioned, in the meantime, the workaround is to insert the hyperlink in its own label and add a RegisterCallback to it.

    We plan to add a <a href="URL"> tag that calls Application.OpenURL() with the specified URL in the near future. Would this suit your needs?

    We are also planning to add the logic to allow users to hook custom callbacks to <link> tags. However, this will come later.
     
    mariandev and Thimo_ like this.
  3. MousePods

    MousePods

    Joined:
    Jul 19, 2012
    Posts:
    808
    Hey! Just wondering if you were able to squeeze this into 2022.1?

    Its vital for my font as it is weird with its centering and only those additional alignment options get a perfect center. Also the line height is also a need for my font.

    Have a great holiday :)
     
    HugoBD-Unity likes this.
  4. HugoBD-Unity

    HugoBD-Unity

    Unity Technologies

    Joined:
    May 14, 2018
    Posts:
    490
    Hi @MousePods !

    Unfortunately, we didn't manage to add this in 2022.1, but have you tried to change the different metrics in the FontAsset Inspector of the FontAsset you are using? You should be able to tweak the LineHeight to achieve the desired results.

    Thanks, and happy holidays to you as well!
     
    MousePods and Thimo_ like this.
  5. Thimo_

    Thimo_

    Joined:
    Aug 26, 2019
    Posts:
    59
    The <a href="URL"> tag would be perfect to add to UI toolkit in my opinion!
    Do you have a prediction for when this feature will be addded 2022.1? or 2022.2?

    Thanks in advance!
     
  6. MousePods

    MousePods

    Joined:
    Jul 19, 2012
    Posts:
    808
    Thanks for the tip! It looks like this will be a last resort if the features aren't out yet before the end of 2022. Do you know by any chance if it will make it into 2022.2?

    Thanks!
     
  7. vejab

    vejab

    Joined:
    Dec 21, 2021
    Posts:
    119
    I have a problem with the <align=justified> tag. If the length in pixels of the line is only a little bigger than available space then instead of wrapping it will go outside the box. The problem is both at runtime and UI Builder.
    alignproblem.png
     
    HugoBD-Unity likes this.
  8. FreddyC-Unity

    FreddyC-Unity

    Unity Technologies

    Joined:
    Jun 9, 2021
    Posts:
    36
    Hi @vejab,

    Thanks for highlighting this issue! That seems to be a bug on our end, could you please report this through the unity bug reporter and post the issue number so we can track it?
     
  9. vejab

    vejab

    Joined:
    Dec 21, 2021
    Posts:
    119
    FreddyC-Unity likes this.
  10. Chris-Trueman

    Chris-Trueman

    Joined:
    Oct 10, 2014
    Posts:
    1,260
    Trying to use a FontAsset in 2021.2.9f1 and while it works, all input fields will not accept input. I can press backspace and enter and they are both registered. If I switch back to the default and it works fine.

    When I add the font asset in UIBuilder the console starts to spit out error messages.

    Cannot process a null font.
    UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

    And

    AssertionException: Assertion failure. Value was Null
    Expected: Value was not Null
    UnityEngine.Assertions.Assert.Fail (System.String message, System.String userMessage) (at <898af1af8ccf490a906c218e1e74b230>:0)
    UnityEngine.Assertions.Assert.IsNotNull (UnityEngine.Object value, System.String message) (at <898af1af8ccf490a906c218e1e74b230>:0)
    UnityEngine.Assertions.Assert.IsNotNull[T] (T value, System.String message) (at <898af1af8ccf490a906c218e1e74b230>:0)
    UnityEngine.Assertions.Assert.IsNotNull[T] (T value) (at <898af1af8ccf490a906c218e1e74b230>:0)
    UnityEngine.UIElements.TextNativeHandle.GetVertices (UnityEngine.UIElements.MeshGenerationContextUtils+TextParams parms, System.Single scaling) (at <40001ab788e241b094dbea03f2ab96e8>:0)
    UnityEngine.UIElements.UIR.Implementation.UIRStylePainter.DrawTextNative (UnityEngine.UIElements.MeshGenerationContextUtils+TextParams textParams, UnityEngine.UIElements.ITextHandle handle, System.Single pixelsPerPoint) (at <40001ab788e241b094dbea03f2ab96e8>:0)
    UnityEngine.UIElements.UIR.Implementation.UIRStylePainter.DrawText (UnityEngine.UIElements.MeshGenerationContextUtils+TextParams textParams, UnityEngine.UIElements.ITextHandle handle, System.Single pixelsPerPoint) (at <40001ab788e241b094dbea03f2ab96e8>:0)
    UnityEngine.UIElements.MeshGenerationContextUtils.Text (UnityEngine.UIElements.MeshGenerationContext mgc, UnityEngine.UIElements.MeshGenerationContextUtils+TextParams textParams, UnityEngine.UIElements.ITextHandle handle, System.Single pixelsPerPoint) (at <40001ab788e241b094dbea03f2ab96e8>:0)
    UnityEngine.UIElements.TextInputBaseField`1+TextInputBase[TValueType].OnGenerateVisualContent (UnityEngine.UIElements.MeshGenerationContext mgc) (at <40001ab788e241b094dbea03f2ab96e8>:0)
    UnityEngine.UIElements.VisualElement.InvokeGenerateVisualContent (UnityEngine.UIElements.MeshGenerationContext mgc) (at <40001ab788e241b094dbea03f2ab96e8>:0)
    UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)

    Not sure what's happening. The text is rendered with the proper font, input doesn't work and I get these messages spamming the console while UIBuilder is open and I do anything in it.

    I even tried the default font as a font asset and it is the same, no font asset will allow me to use the TextField for input accept the default one built in. This is on a fresh project, no packages installed other than the ones the 2D template installs. Tried in a build as well, still didn't work.

    Edit:
    Filed a bug report: Case 1399149
     
    Last edited: Jan 29, 2022
    HugoBD-Unity likes this.
  11. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    Please make it so that I can add system fonts as fallback. This is very much needed for localization and emoji, especially in mobile without bloating the build with huge fonts.

    I found this https://forum.unity.com/threads/loa...-and-assign-as-fallback-tmp_fontasset.657151/
    and it helped a lot,
    But that does not work at editor time.

    It would be great if in the font asset I could just specify a list of system fonts to use as fallback, for example:

    Code (csharp):
    1. Roboto
    2. Helvetica
    3. Arial
    And it would use them if it finds them. It would also really help if this worked at editor time. Heck, I would create an empty font asset and rely only on system fonts if I could.
     
    konsti1994 and Ruchir like this.
  12. HugoBD-Unity

    HugoBD-Unity

    Unity Technologies

    Joined:
    May 14, 2018
    Posts:
    490
    Hi @goldbug,

    I'm glad you brought up the question as I think it's the first time we discuss "Dynamic OS Font" on the UI Toolkit forum. The good news is TextCore already supports Dynamic OS Font Assets. It's a dynamic font asset but the source font file isn't exported to the player build. Instead, it will use the font on the target platform that matches the family name and the style name.

    To create a Dynamic OS FontAsset, you first need to import the desired font to your project in the Editor and create a FontAsset from that font. You can then switch its Atlas PopulationMode to "Dynamic OS" under the Generation Settings tab.

    We are aware we are lacking documentation on this, but I hope this helps in the meantime!
     
  13. BlackSpider

    BlackSpider

    Joined:
    Oct 8, 2011
    Posts:
    43
    @hugobd I was trying to get the sprite tag to work for textcore in UI Builder without including text mesh pro. But I couldn't get it to work. For the example below only worked with text mesh pro added.

    <sprite=0>

    Also sprite tags with name and indexed didn't seem to work even when text mesh pro was added.

    <sprite="name" index=1>

    Do you know if textcore supports behaviour or if we still need text mesh pro for this specific use case.
     
  14. HugoBD-Unity

    HugoBD-Unity

    Unity Technologies

    Joined:
    May 14, 2018
    Posts:
    490
    @BlackSpider Unfortunately, the <sprite> tag is currently not supported in the Editor. It should work in the GameView and at runtime though.

    It's something we are looking to add support for at some point, but I can't give a precise estimate.
     
    BlackSpider likes this.
  15. BlackSpider

    BlackSpider

    Joined:
    Oct 8, 2011
    Posts:
    43
    @hugobd Thanks for the quick reply. So you say it should work without textmeshpro in the gameview?

    I will dig a bit deeper into debugging this tomorrow as I think the classes are inside the textcore package that handle the sprite tag behaviour.

    UPDATE: Noticed it didn't load properly due to me forgetting a / at the end of the resources path in the UITK Text Settings for Sprite Assets.

    And it also showed up correctly in my UI Builder which surprised me.
     
    Last edited: Mar 2, 2022
    HugoBD-Unity likes this.
  16. sharkbitgamesdev

    sharkbitgamesdev

    Joined:
    Dec 2, 2019
    Posts:
    18
    Do we have any update on this?
     
  17. Gekigengar

    Gekigengar

    Joined:
    Jan 20, 2013
    Posts:
    738
    Please have a tick box for a fallback to system font like every other modern softwares out there when the font/character isn't available. So there will be an option to beta test with non-english audience until we are actually ready to invest in localization fonts.
     
    Last edited: Apr 28, 2022
    mariandev and fherbst like this.
  18. Flow-Fire-Games

    Flow-Fire-Games

    Joined:
    Jun 11, 2015
    Posts:
    305
    New text system sounds great

    The most annoying thing in textmesh pro aside of the material errors is:

    Rich text codes are extremely inefficient

    writing <style= > or even <b> is way too much if you gotta do it hundreds of times
    Like in markdown, bold should be just 1 key *text*

    compare the loops you have to go through:

    *
    text
    *


    to:

    <
    b
    >
    text
    <
    /
    b
    >



    Not to forget that writing > and / requires both hands and if you write a lot of text this becomes like finger acrobatics for every paragraph.

    Please change this, its absolutely painful
    A modder for our game wrote a custom auto completion windows tool because this is so inefficient. Also the readability for the text and for localizers is really bad.
    Honestly I am afraid that some localizers will just not want to do it when seeing this.

    Increases <style=crit>critical</style>chance by <b>20%</b>

    Increases ''s=crit''critical'' chance by '20%'

    something smarter along these lines could be a 2-500% workflow improvement
     
    Last edited: May 12, 2022
  19. vejab

    vejab

    Joined:
    Dec 21, 2021
    Posts:
    119
    Why don't you create an extension function that converts *aaa* to <b>aaa</b>?
     
    Prodigga and Edy like this.
  20. andyz

    andyz

    Joined:
    Jan 5, 2010
    Posts:
    2,247
    Well for rich text codes you can not use an escaped character like " and other characters are valid in a string!
    What it could use is a WYSIWYG editor with buttons to toggle bold/italic etc. - rather like you are using in this forum!
    If you are typing out text in code then use your own syntax and convert with an extension method on applying to a text field
     
  21. Flow-Fire-Games

    Flow-Fire-Games

    Joined:
    Jun 11, 2015
    Posts:
    305
    Given the current syntax this is essentially a must and its on our plan, but adding 50 buttons for 50 keywords is not amazing and something like this is just very low on the list of important features which them means people have to write like that for weeks or months. Sure we could do that, but theres just no reason something that inefficient is not getting improved when the entire text system is getting a rework. Its these kinds of things that often make people say "Unity is not developing games" where anyone using it in actual production instantly thinks that nobody has actually had to use this themselves for a real world project over extended periods after creating it.

    There is no reason for <style= > to not be just <s= > per example even if we keep the extremely slow and finger twisting < > syntax
     
    Last edited: May 13, 2022
  22. Chris-Trueman

    Chris-Trueman

    Joined:
    Oct 10, 2014
    Posts:
    1,260
    Short hand < s = > could be multiple tags like size, subscript or superscript and not just style.

    This is more a complaint about rich text in general which isn't just for TMP, but is used for quite a number of text editors like this forum posting section that has rich text as well. In fact the Text component that TMP replaced originally has rich text.

    As for making a system that abstracts from having to use use rich text tags, I would weigh in that the amount of time to create a system like that would take longer than the time it takes to actually write out the tags, for at least a few projects.

    Then why would Unreal use rich text tags as well? Don't they develop games? Why would they use the same system?

    Quite a few successful games out there using Unity. Most don't advertise it as it has a bad rap for being poorly optimized. Which is only a half truth, as it is usually the programmer not understanding how automatic memory management works.

    In the end rich text is a standard across the world, and is more an extension of html and has been around for quite a while.
     
  23. Fribur

    Fribur

    Joined:
    Jan 5, 2019
    Posts:
    132
    I just noticed that pretty much the entire API of TextCore has been changed to "internal", which I find very unfortunate, as it breaks my high-performant massive parallel DOTS based text generation: the only thing I need for that is access to all the FontAsset and FontAsset.faceInfo attributes as well as to the table m_GlyphPairAdjustmentRecords to convert this data into a struct / entity. Would you be able to please open up those API again?

    Edit: TextCore coming with Unity 2021.2 appears to be mostly OK (just Kerning table is internal), and for 2020.3 installation of the package version fixes all those issues.
     
    Last edited: May 25, 2022
  24. HugoBD-Unity

    HugoBD-Unity

    Unity Technologies

    Joined:
    May 14, 2018
    Posts:
    490
    We are actively working on bringing the <link> tag from TextMeshPro to UI Toolkit. The work is currently in landing pattern so you should hear more about it in the near future.
     
    vertxxyz and Kirsche like this.
  25. HugoBD-Unity

    HugoBD-Unity

    Unity Technologies

    Joined:
    May 14, 2018
    Posts:
    490
    @Flow-Fire-Games I understand writing a lot of rich text tags can feel inefficient and the experience can be frustrating. Especially when typing rich text tags manually in a UXML where "<" has to be replaced with "&lt". We do intend to improve the workflow of editing rich text by adding a WYSIWYG text editor in the UI Builder where you could highlight pieces of text and apply the desired style through gismos or by using shortcuts.

    We are always open to feedback. Do you think it's the right approach to address the pain you are facing?
     
    awesomedata and Ofx360 like this.
  26. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,935
    Apologies if it was mentioned earlier,
    Auto Fit from TMPro was a very important feature useful in some specific cases, Is this feature coming to UI Toolkit?
     
  27. HugoBD-Unity

    HugoBD-Unity

    Unity Technologies

    Joined:
    May 14, 2018
    Posts:
    490
    Hi @jGate99 !

    Yes, it's a highly requested feature and we are definitely looking to expose it to UI Toolkit users.
     
    awesomedata and jGate99 like this.
  28. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,935
    appreciate that
     
  29. Stephan_B

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    In an upcoming release, we will be adding a basic fallback structure to handle various languages but this will only be there to serve as an example of how developers can setup their fallback structure.

    Since font selection varies per platform (subject to change from time to time) and given fonts come in all shapes, style and size, it is not possible to create a fallback structure that would work for all.

    Here is an example in Microsoft Word to illustrate this problem.

    upload_2022-6-6_14-59-15.png

    On the first line, the font used is "Arial" which does not contain CJK characters. As such, MS Word falls back to DengXian for the Chinese text. On this first line of text, the fallback works fine given the primary font and selected fallback have a similar weight. By contrast, on the 2nd line where Impact is the selected font, the DengXian font doesn't work from a design / stylistic point of view.

    Since there is no way for us to setup a fallback structure that will work for all potential fonts a developer might chose and potential target platforms, what we aim to do is to provide you (the developer) with the tools to enable you to structure your fallback exactly how you need based on your font and design choices.

    Another problem with the Legacy implementation and hidden magic list of fallback usage is that it hides from the developer what is actually going on where too often late in the development cycle they realize the font they selected doesn't have the desired glyph coverage resulting in different fonts being selected on different platforms sort of breaking from a design point of view.

    We make a clear distinction between the developer (you) and the app user. The goal is to provide the developer with the tools to ensure their end user experience is great. This also means not hiding crucial functionality that developers should be aware of vs. end users.

    For instance, in the Editor while you are developing, we want to display the missing glyph symbol instead of displaying a glyph from some fallback. We do so to alert you that whatever font you have selected does not contain the glyphs being referenced thus allowing you to select an appropriate fallback or pick a different font to ensure the end user doesn't see those missing glyphs.

    Just like developers have to learn about good coding practices, garbage collection, etc. Modelers learning about efficient geometry, UV mapping, etc. The same is true for text. I don't expect app users to have to learn about Unicode, glyph coverage and fallbacks, font features, etc. but this is something that developers should learn and know.

    You can certainly expect future releases to include additional information on this along with examples to make it easier to structure your font assets, local and global fallback so you can handle any language and for any given platform.
     
  30. LoneGoat

    LoneGoat

    Joined:
    Dec 16, 2020
    Posts:
    21
    I'm really missing the
    Code (CSharp):
    1. public int maxVisibleCharacters
    property from TextMeshPro.
     
    Kandy_Man and HugoBD-Unity like this.
  31. MousePods

    MousePods

    Joined:
    Jul 19, 2012
    Posts:
    808
  32. LoneGoat

    LoneGoat

    Joined:
    Dec 16, 2020
    Posts:
    21
  33. HugoBD-Unity

    HugoBD-Unity

    Unity Technologies

    Joined:
    May 14, 2018
    Posts:
    490
    Hi all! We have recently added support for the <link> tag to enable interacting with subsections of text. Have a look at this post for more info and a sample.

    Thanks for your patience and to @Thimo_ and @sharkbitgamesdev for bringing this up.
     
  34. Gekigengar

    Gekigengar

    Joined:
    Jan 20, 2013
    Posts:
    738
    Thanks for the reply Stephan, it is understandable when considering the font style, but at early stages of development, uniform font style is not the primary focus of the project yet. Just need a proper fallback that supports all glyph temporarily to quickly gather important data from various audience from different locale. We will just turn this optional tick box off when other locale fonts comes to the focus of the development.

    Will the fallback provided by Unity supports all glyph by default at start?
    A simpler solution is to just support fall back to any system font available that supports it for temporary measures.
     
  35. mikejm_

    mikejm_

    Joined:
    Oct 9, 2021
    Posts:
    346
    I am currently trying to solve multilanguage support with UI Toolkit and I would appreciate your thoughts.

    Ideally, what I think I would personally like in terms of a fallback system is if for each Label and TextGenerator object (the two classes I use) we can set a list of Fonts that should be used in order.

    Ie. Label.SetFallbackFontList(List<Font/UnityFontDefinition> fallbackList)

    or if there was a specific class for FallBackFont you could have:

    Code (csharp):
    1. public class FallBackFont {
    2. public Font font; //font to use
    3. public Vector2 offset; //x & y offset if needs manual realignment to match main font
    4. public float sizeMultiplier; //font size multiplier to use if size not well matched
    5. }
    Then you could go make a list of FallBackFont objects and enter those to the function above.

    Once the list is input with these parameters, the Label (or TextGenerator) could work through the list of supplied fonts in order provided to find the first available one that displays any given character.

    That's the only way I can think that it would work if the fallback is character by character. Do you have any other ideas for how your proposed system will work? Perhaps we can brainstorm together. I'd be curious either way what you're planning to know if it will help me.

    Currently, is it correct that we can only set Label to use one font for all characters in Android/iOS builds? If so, my only solution I thought of so far for my project is:

    1) Make a giant "COMPREHENSIVE UNICODE" supporting generic fallback font.
    2) Generate lists of characters supported by my "preferred/stylized" first choice fonts (asked how to do that here - any ideas how?).
    3) Compare the new Label string whenever I set it against that preferred font "supported character" list.
    4) If any characters are missing in the stylized font and covered in the fallback font, switch to fallback font for the whole Label.

    I think this is not bad as it also creates a very controlled Font experience, except I don't know how efficient it is. My "COMPREHENSIVE UNICODE" font I just spent today making ended up being 30 MB.

    Is having such a massive font attached to so many Labels going to slow my app down? I can't tell if it is already. I'm not sure if a more "normal" fallback system would prevent any inefficiency?

    Any thoughts or ideas?

    If you do implement any such fallback system, can you make sure it works for TextGenerator as well? Currently TextGenerator is the only system that lets you find vertices of letters. So unless you can give us the same function in Label, we need these to have parallel behaviors.

    Thanks.
     
    Last edited: Aug 10, 2022
    konsti1994 likes this.
  36. Genghis42

    Genghis42

    Joined:
    Feb 14, 2018
    Posts:
    18
    In that "getting started guide" you linked in the OP, there were three screenshots under the "Rich Text Tags" section. I'm unable to get any from the second and third ("TextCore Assets" and "Alignment Tags") to work as expected.

    Putting the following in the text attribute:

    This is <i>rich</i> <b>text</b> with a <font="Open Sans">font</font> that is <align="right-aligned">right-aligned</align>


    ...results in the following:

    unity_rich_text.png

    So ... is it possible to use <font> or <align> tags in a TextElement? Or am I just doing something wrong?
     
    ontrigger and Ruchir like this.
  37. cb0d

    cb0d

    Joined:
    Mar 18, 2022
    Posts:
    20
    Can anybody point me to documentation about how to use new fonts within UI Builder? I'm running into all kinds of issues when I try to bring in a new font so I assume I'm misunderstanding how the font system works.
     
  38. HugoBD-Unity

    HugoBD-Unity

    Unity Technologies

    Joined:
    May 14, 2018
    Posts:
    490
    Hi @Genghis42 !

    Regarding the <align> tag you're absolutely right, the Getting Started Guide is unclear. We are actively working on adding official documentation for TextCore and its integration in UI Toolkit. In the meantime here's a list of the supported alignment tags:

    Code (CSharp):
    1.  
    2. <align="left">
    3. <align="center">
    4. <align="right">
    5. <align="justified">
    6. <align="flush">
    7.  
    As for the <font> tag, make sure your Open Sans SDF FontAsset is located in the appropriate folder. The folder is defined in the Panel Text Settings. The Panel Text Settings asset is assigned in UI Document -> PanelSettings -> PanelTextSettings. If no Panel Text Settings are assigned, the default location is Assets/Resources/Fonts & Materials/
     
    Genghis42 and Ruchir like this.
  39. HugoBD-Unity

    HugoBD-Unity

    Unity Technologies

    Joined:
    May 14, 2018
    Posts:
    490
  40. Genghis42

    Genghis42

    Joined:
    Feb 14, 2018
    Posts:
    18
    Thanks @HugoBD-Unity -- I'm now able to use the <align> tag just fine. But both the <font> and <style="Link"> tags still break for me. I haven't set up a sprite asset or gradient preset, but as they use a similar setup to fonts, I have a hunch the <sprite> and <gradient> tags might break, as well.

    Using this rich text:

    This is <i>rich</i> <b>text</b> with a <font="OpenSans-Regular SDF"> font </font> and a <style="Link"> link </style> and \n <cspace=20>some spacing</cspace>. \n\nAnd here <pos=25%>are</pos> <pos=50%>some examples</pos> <pos=75%>of the pos tag.</pos>

    ...generates this UI:
    unity_rich_text2.png

    It uses these text settings:
    unity_rich_text_panel_settings.png

    ...with a path pointing to:
    unity_rich_text_font_asset.png


    But every attribute value other than <font="default"> (which of courses just removes the tag without changing the font) seems to glitch, i.e., leave the tag in there without actually changing the font.

    I've tried many, many different variants of the font name, as well as those I think should be built in, like "Arial", "Arial SDF", "Liberation Sans SDF" ... etc. They all glitch the same way.

    Any insight would be greatly appreciated.
     
  41. HugoBD-Unity

    HugoBD-Unity

    Unity Technologies

    Joined:
    May 14, 2018
    Posts:
    490
    Hi @Genghis42! I'm sorry it's not working out. I tried to locally on 2023.1 and I couldn't reproduce your issue. Would you mind logging a bug through the Unity Bug Reporter and pasting the ticket in thread ? This will help reproduce the issue locally and to backport the fix if needed.

    Which version are you using ?
     
  42. Genghis42

    Genghis42

    Joined:
    Feb 14, 2018
    Posts:
    18
    I'm on 2021.3.6. It might take me a few days before I can make time for a minimum reproducible example, but I'll try.

    Thanks for your attention to this!
     
    HugoBD-Unity likes this.
  43. Gekigengar

    Gekigengar

    Joined:
    Jan 20, 2013
    Posts:
    738
    Last edited: Oct 19, 2022
  44. HugoBD-Unity

    HugoBD-Unity

    Unity Technologies

    Joined:
    May 14, 2018
    Posts:
    490
    Hi @Gekigengar, and thanks for bringing this up!

    We are always looking to improve and test new rendering techniques. Funny enough, we already logged a task to look into this specific GitHub repo. Unfortunately, we haven't had time to look into it yet, but it is on our radar!
     
    Gekigengar likes this.
  45. MrLucid72

    MrLucid72

    Joined:
    Jan 12, 2016
    Posts:
    962
    Is this project still active? Edit: Nice, it seems integrated into ui builder. I tried:

    `<mark=#ffff00aa>`

    and it worked
     
  46. Gekigengar

    Gekigengar

    Joined:
    Jan 20, 2013
    Posts:
    738
    What has happened since then?
     
  47. Christopher412

    Christopher412

    Joined:
    May 26, 2023
    Posts:
    30
    Is TMP parity still the goal?

    I'm missing the ability to create thicker outlines without the text/font being "eaten up", as in the outline is created inwards. Also, gradients are supposed to work through the <gradient> tag, but I wasn't able to get it to work in the 2023.2.* builds.

    It's quite useful to be able to recreate an identical font in UI Toolkit, so that you can fall back on old UI features when UI Toolkit doesn't support something. And still have similar looking fonts.
     
  48. HugoBD-Unity

    HugoBD-Unity

    Unity Technologies

    Joined:
    May 14, 2018
    Posts:
    490
    Hi @Christopher412!

    The <gradient> tag should still work. The workflow is not ideal, though. The Gradient asset needs to be located in the following path: `Assets/Resources/Text Color Gradients/Yellow to Orange - Vertical.asset`
     

    Attached Files:

    Christopher412 likes this.