UGuiのTextに入る正確な文字数が知りたいです。
Gameビューのサイズを変更すると、
Textコンポーネントに入力したテキストの
1行に収まる文字数が変動してしまいます。
Fontsizeは60で、1行に16文字表示するようにしたいと考えたので、
60*16=960なので、このTextのWidthは960にしたのですが、
添付画像のようにGameビューを縮小すると各行の末尾がずれ、
1行に入る文字数が増えることがあります。
第三者にこのText内に表示する文章を作成してもらうため、
このTextが何文字×何行を表示できるかということを
明確にしたいと考えています。
CanvasのCanvas Scalerは以下のように設定しています。
・UIScaleMode:Scale With ScreenSize
・Reference Resolution:x1920 y1080
・Screen Match Mode:Match Width Or Height
・Match:0
・Reference Pixels Per:100
作業環境でのGameビューのアスペクト比は16:9です。
Gameビューを縮小するとき、
インスペクタを見てもCanvasやTextに変化があるようには見えませんでした。
正確な文字数はどう判断すれば良いか、ご教授頂けないでしょうか。
以下追記です。
下記のスクリプトを作成して、
TextGeneratorクラスの変数characterCountVisibleを使用して、
1行に表示される文字数を調べようとしました。
結果、行に表示される文字数は「17」とコンソールに表記されました。
16が表記されると考えていたので、混乱しています。
また、Gameビューのウィンドウサイズを変更することで、
変数lineCountは変動するのに対して、
characterCountVisibleは変動しません。
変数が「1行に表示されている文字数を示す」という認識が間違っているのでしょうか。
using UnityEngine; using UnityEngine.UI; using System.Collections; public class TestScript : MonoBehaviour { public Text textCounted; void Update () { if(Input.GetKeyUp("t")){ TextCount(); } } void TextCount(){ TextGenerator tg = textCounted.cachedTextGenerator; Debug.Log("行に含まれている文字数は"+tg.characterCountVisible+"です。"); Debug.Log("文字数は"+tg.characterCount+"です。"); Debug.Log("行数は"+tg.lineCount+"です。"); } }
以下2回目の追記です。
ご教授いただいたコードをスクリプトに追加して、
Textのwidth・heightを変更して1行に収まる文字数を確認したところ、
Gameビューで確認できる文字数と同じ数値がコンソールに表示されました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/24 04:06
2019/09/24 07:33
2019/09/25 02:07