#表示する文字の間に半角スペース入れたら改行しちゃった!?
Unityは、日本語を『長い1単語』と認識しています。恐らく半角スペースから次の半角スペースまでで1語という処理なんでしょうね。英語圏が本国だしね、まぁ英語用の処理になってます。
#どうやって対策しよう
世の中にはnbsp、つまりノーブレークスペースというのがあります。コイツは『スペースと認識されないスペース』です。つまり改行されない。
文字列中の半角スペースに対してコイツをReplaceしてやれば解決ですね。
text=text.Replace(" ", "\u00A0");
こんだけ。
何も考えずに作ってると意外と見落としてて後で『表示が変だ!』ってなって発生個所を確認するのが面倒なので、文字列を扱う前に
string TextFix(string text)
{return text.Replace(" ", "\u00A0");}
なんて関数を作っておいて使うようにすれば手軽に回避できますね。
2020/1/20追記
当初はnbspを直接入力する形で書いていたのですが、どうも環境によってただの半角スペースとして認識されるっぽいので文字コードのままで入れる形に例文を修正しました。