GetCharacterInfoが動かない?
表示されてる文字の情報を取ろうとして失敗する現象に遭遇した。
CharacterInfo characeterInfo if (Text.font.GetCharacterInfo(c, out characterInfo)) { // 通らない }
原因はどうやら、
GetCharacterInfo
の第三引数を省略するとフォントのデフォルトサイズで検索をかけるCanvasScaler
やらなんやらの影響で、レンダリングの際にはText.fontSize
で指定したフォントサイズとは異なるフォントサイズが適用される
というわけで、以下の書き方なら通るっぽい。
CharacterInfo characterInfo; if (Text.font.GetCharacterInfo(c, out characterInfo, Text.cachedTextGeneratorForLayout.fontSizeUsedForBestFit)) { // ヒットする }
ちなみに_Text.cachedTextGeneratorForLayout
に似たプロパティで_Text.cachedTextGenerator
って言うのもあるんだけど、どっちが適正なのか調べる気力はナイアガラ。