Search Issue Tracker
Won't Fix
Votes
8
Found in
5.3.3p3
Issue ID
788820
Regression
No
GetCharacterInfo does not work when Canvas Scaler is set to "Scale With Screen Size"
Reproduction steps:
1. Open User's project
-Notice that Canvas scaler is set to "Scale With Screen Size"
2. Run "TestScene" scene
3. Press "Wrap it" UI button
-Notice that all the values in console are 0s.
Expected behaviour: All the CharacterInfo.advance values got from Font.GetCharacterInfo are greater than 0.
Workaround: Set Canvas Scaler to "Constant Pixel Size" and run the scene. This way all the lines will log values greater than 0.
Reproduced in versions: Unity 5.2.4f1, 5.3.3f1, 5.3.4f1, 5.3.5f1, 5.4.0b12, 5.4.0b17, 5.4.0b18
Comments (2)
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Texture2D hash changes inside of an AssetBundle when rebuilding a SpriteAtlas bundle with an empty AssetPostprocessor Script enabled
- Aniso Level still applies when Generate MipMap is disabled in Texture Import Settings
- Mipmap Limit Groups long names are not truncated when creating a new Mipmap Limit Group with a long name
- “ArgumentException: Invalid double parameter.” error is thrown when Infinity is typed into the Fixed Timestep field
- GameObject becomes gray when using HDRP and STP together on macOS
Paul-Sinnett
Apr 25, 2017 12:03
I have a workaround: use the RectTransform of the Game Object with the Canvas Scaler on it to calculate the font scale factor.
e.g.
char glyph = 'A';
CharacterInfo characterInfo;
float fontScale = scaler.localScale.x;
int fontSize = Mathf.FloorToInt(myText.fontSize * fontScale);
font.GetCharacterInfo(glyph, out characterInfo, fontSize, myText.fontStyle);
float advance = characterInfo.advance / fontScale;
k0mbain
Jun 17, 2016 07:04
Confirmed, doesn't work in 5.3.4p1.