Answered your e-mail.
RubyDev
Creator of
Recent community posts

Hi, sorry while I sent you 2 emails today for other issues I found another one but I require gifs to explain them.
Is this a "me-problem", as in, a problem of my font, or is this a problem of the asset?
As you can see, the height of the element is bigger than the text needs it, but the font seems to have so much upper-space that center isn't actually centered. Neither is Top or Bottom.
Also here is a weird image of the "zero width spaces" appearing out of nowhere:

If I hyphen them, it also looks weird:
And here I also show "top" anchored with different character sizes, still doesn't really make sense.
EDIT:
I read up a tiny bit on how fonts actually "work" and I guess this font just has a high 'ascender'.
I put a ' character after the 0 and saw that the line size is taller than the zero, so it probably accounts for that. So I guess this isn't really something you or me can fix for this font.
Upon reimporting the package I get the following errors (won't compile)
I can auto import the FontEngine things but "pointSize" and "TryGetGlyphIndex" still are missing.
(Unity 2022.3.61f1)
I also get when I import the package:
Failed to find entry-points:
Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'Assembly-CSharp-Editor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' ---> System.Exception: Failed to resolve assembly 'Assembly-CSharp-Editor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' in directories: C:\Program Files\Unity\Hub\Editor\2022.3.61f1\Editor\Data\MonoBleedingEdge\lib\mono\unityjit-win32
Hello! I come with bad news, because I know performance issues are always the worst to debug. 😅 Especially second-hand when some user reports them and they don't appear in your own testing.
So I am currently implementing tooltips in my game and I noticed that sometimes when the text is set, I get a small lag-spike.
I think it's hard to see in the gif, but here is what I am doing none the less:

I've done a bunch of profiling and tinkering with my own system behind it, but I found the culprit.
In the profiler it first doesn't look bad, but just to try it, I've put a 'return' at the start of the ApplyMaterials() method and it fixes the lag-spike completely. Now... obviously the quads aren't updated and shown either now. (I have not exactly understood the code, but it seems the materials are updated and submeshes are set or something, and as we've talked before, submeshes correlate to quads.)
The tooltip panel in the GIF is actually re-using the same one and setting new text. I assume when the text is set, the materials are updated to the needed ones for this specific text, this seems to sometimes lead to a small lag-spike.
At least from what I can gather.
Now I am not even saying this is some bigger problem that you have to fix with the asset (I don't know if it even is), maybe it's a problem with my setup?
Got any suggestions how I could remedy this? It would be great if the ApplyMaterials() wouldn't have to be called on every rebuild and just keep all materials in it, even if this specific instance of text is not using some of them. Does that make sense?
Would love your help and input.
Oh and btw.:
- In a build this lag-spike is not appearing for me, it's only happening in Unity Editor.
- I have not tested it on a weaker machine yet, but I usually try to make things run smooth also while in Editor. (Builds always seem to run smoother and more powerful anyways.)
- This is on the version you sent me in the e-mail.
- I checked warnings but couldn't find anything related to STM.
- If you wonder why the call in the profiler is made 5 times, it's because I got 5 lines of text after another. Text is split in groups so I can adjust spacing between lines and also I wanted the reading animation to start from each line at the same time as seen in the GIF. I also attempted to cut this down to 1 component (and just join the string via \n) but it didn't really solve the issue, the spike was still noticeable sometimes.
- Part of the lag-spike is also coming from a ContentSizeFitter I have on my objects but I also removed that one for testing and the culprit still seemed to be the ApplyMaterials() call.
- I tested it both on a World Space and Screen Space - Camera canvas and it happens on both.
- I tested it both with the Universal and Ultra shaders and it made no difference.
- I tested PixelSnap off and it on and it made no difference.
- I tested with and without 'reading-feature', also made no difference.
- I also disabled all my internal regex parsing, layout components and everything else and still felt the spike.
EDIT: Expanded hierarchy further for you.
Okay, I know I am kinda spamming here at this point but, I did try to reproduce it in the mask demo scene (just picked any of your demo scenes) and initially struggled to reproduce the bug.
I found the bug comes from my camera "stack" setup.
All my UI is filmed by a "UI Camera" and rendered into a render texture which the main camera displays via another canvas element.
This only happens if I do it this way, so if I render the text into a render texture. Instead of doing this though, I now actually use real camera stacking and swapped my UI camera to be an "overlay" camera. Now the bug does not exist.
So I think the bug must relate to:
- My Render texture setup (screenshot below if you care enough to try to reproduce my mess)
- How Super text mesh is seen by a camera and then written into render textures
- How raw image renders the render texture (I tried no material and with material on the raw image component, nothing changed)
PS: Happens with both Universal and Ultra Shader. I am using the build you sent me. Happens with both SDF Mode ON or OFF.
Tried variety of different tick-boxes, tried Mask Mode, nothing changes behavior.
Tried different integers for render-queue too.
It also happens on other fonts, e.g.: tried it with the Liberation Sans font or Legacy Runtime font and still happens.
Also tried in a blank component with no tags at all, even white text will be a bit blue with a light-blue sprite behind it in the world. Here is additionally a screenshot with the component:
Additional Info: This seems to only happen in the area the font is "antialiased".
In my pixel font with filtering set to "point" I cannot reproduce, I can reproduce it on a non-pixel font though, even if it's set to filtermode point.
Additional gif, showcasing the behavior:
This is a weird one, maybe you have seen it before, somehow anything e.g.: sprites in world, other canvas, "shines" on/through my text!?
It's also weird, because when I fade the text, it's even more visible, shouldn't my panel behind (unity: image) cover everything behind the background up then?
In this gif, I adjust the fade of the Super Text Mesh component and then it can be seen even more how a panel from another canvas "shines through".
I really don't have any funky setup going on here, no masking, no canvas groups. It's just a simple hierarchy setup:
I think I found out why my approach probably lead to this problem. I didn't use texture atlas for my icons. I bundled up some icons into a texture atlas now and that way I am not limited to 7 different ones.
I assume this is some sub-mesh or sub-material problem?
It's better practice to use texture-atlas anyways so I will just set it up that way. Still an interesting find, no? 😅
Hey, could it be that there is a maximum amount of distinct/unique/different quads of 7 per component? Any time there are more than 7, the quads appear empty.
If I delete one, the next in line appears magically.
I can work around this by making multiple components, but I wanted to ask if this is intended or if I can change this limitation somehow?
Ohh, in the old version I found a line of code by looking for "if UI_MODE" called "zed -= 1" and I changed that and that did fix it in the old version.
But in the new version you sent me it was fixed by default so all worked fine in the build you sent me.
I think I don't need a new build right away again, I'm fine waiting, it's not urgent.
Had to re-open Unity 'cause I closed everything already for the night but I just tried it:
zed -= 1000;
Fixed the issue in the screenshot.
Funnily enough 999999 also seems to have fixed it. I tested out some stuff and it vanishes at -4 and lower and at 31 and above.
(All tested in the old version.)
Now in the new version. (First of all, I get a few error messages. I made a screenshot but I assume those are because it's maybe new import and not finalized version yet.)
After the update, the number was 1000. At first it was not fixed but I restarted Unity and now it's working.
Again, I don't know how much those error mean to you but I am going to bed over here now so here they are for good measure:

Thank you for your help. I am glad to be of help!
Funnily enough, no this was on the old build. Sorry, I should have mentioned that.
I did try the new build and the outlines worked but then I had some scaling issues in my project so I reset, but then it turned out it didn't have anything to do with the new build. So now I am yet to go to custom-sent new build again.
So the build in this version is the one that you get from Unity asset store.
Hello, I thought I might make a new topic for this.
I am not actually sure if this is a bug on your end or on my setup, but I think it might be a bug with the asset.
It seems world-space canvas text will always be drawn, even if overlapped by e.g.: an image/panel in a screen-space-camera canvas. In the screenshot you can see how the panels order correctly but the text will show above the other panel. I also screenshotted the inspector, maybe you can also set it up to see yourself.
It's not a big problem for my game cause actually the world space canvas will probably be front-most... probably!?
But I wanted to report this nonetheless.
I think it would be a nice feature, maybe even a tag? <lineSize>.
I guess I can just math it out myself though, a <lineSpacing=-1> should kinda do the same as if I made the line height 8, instead of 9.
It seems I never run out of questions (though I am heading to bed in 5 minutes over here.):
Is there a way I can set the width of "space"? In TextMeshPro I think this used to be in the Font Asset. I already thought of a workaround using the tab instead of space, (I won't use tab anyways) I just wanted to ask. For some reason some of the pixel fonts I use seem to have a massive space size. I assume it's set by the font and you can't really override it.
Thanks for the crazy live-tech support! Do not regret buying this asset, rewriting a lot of code right now and it's a cool opportunity to implement this.
I stumbled upon one more question, when I make my icon <size=9> but the font is size 8, the line will then be size 9. Is there a tag or something I can use to set line height?
Very cool! 😁
Btw. can you explain to me why my icon further up on one font than another? Does this have something to do with what's the size of the font or what sort of metric makes this be like it? Got any suggestion how I could make it more consistent to align with "bottom of the text" or is this just issue with fonts I am using?
Maybe there exists some tag magic again that I could use to fix this, lol.
EDIT: I guess <y=-0.2> kinda did it, would just need to save somewhere how much icon offset every font approx. needs.
One small question (cause I couldn't find, or I don't know where to look in the documentation) but can I "extend" the bounds of text?
E.g.: to show thicker outlines?
I assume for this one e.g.: on the 'A' it cuts off cause the rect isn't big enough. IIRC TextMeshPro had some sort of "extra padding" flag, not sure if something similar exists in your asset.
EDIT: And thanks for the reply on the Ultra shader question.
Playing around with the ultra shader right now and it seems nice!
Is there any downside to using the ultra shader? (Performance?!)
I also already got the consistent icon size going using the <size> tag! About to try not giving it an outline by swapping to another material.
EDIT: Yep that works... perfectly.
Thanks for the quick and friendly reply!
For 2) that's actually an interesting idea to swap material and thus also shader, that would actually fix that issue!
For 3) that's also a good idea, I will try to do this. Basically you mean with the <size> tag I can force a font size and thus "force" the relative size to always be absolute? That's kinda genius, I will try that.
I must admit I couldn't sit still so I started working on a "sub-system" which will basically tokenize and split text into elements and layouting. It splits the text into objects and wraps them automatically cause that way I can maybe use my own image components in the middle of text.

Alternatively it would be nice if quads could avoid outlines all together.
Fortunately I have a workaround in my game, as I only need 1 type of outline color (a close-but-not-actually-black-tone) and I found a fix in tinkering with the shader, checking if the vertex color is magenta (a color I'll never use) and then adjust the color. This way the fragment function can determine if it's currently drawing an outline or not (because magenta is the signal that it's an outline) and then not consider the mask.rgb and give out the authentic outline color.
if(i.color.r == 1 && i.color.b == 1 && i.color.g == 0) { col.rgb = i.color.rgb; } else { col.rgb = mask.rgb * i.color.rgb; } col.a = text.a * mask.a * i.color.a;
Would be interested if there was a better way to solve this cause it would be nice if my fix wasn't so hacky. Also my fix doesn't solve wanting e.g.: this brown outline (even though nobody ever probably wants an ugly outline like this, I just chose it to visualize the effect it has on the quad)
I wasn't able to find another topic here on the forum or anywhere else that spoke about this issue. Maybe everybody just uses black outlines and it never appeared.
EDIT: The more I thinker with it, I don't understand the choice that quads get an outline in general, it's tough to make work for using icons. Do you think there could be a way to disable that? Or is it so ingrained in the shader functionality that that's just the way it works?
EDIT2: I got another question. Would it ever be possible to make quad size independent of font size? Because I use pixel icons but I offer in the game that the player can chose different fonts, e.g.: pixel font but also HD font. Problem is, they have different sizes (font sizes) base-line, which translates to different font-sizes for the component, which then means the icon has different size because the quad size is relative. :(