8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

半角スペースで改行してしまう!?のを解決しよう(Unity)

Last updated at Posted at 2018-12-17

#表示する文字の間に半角スペース入れたら改行しちゃった!?
Unityは、日本語を『長い1単語』と認識しています。恐らく半角スペースから次の半角スペースまでで1語という処理なんでしょうね。英語圏が本国だしね、まぁ英語用の処理になってます。

#どうやって対策しよう
世の中にはnbsp、つまりノーブレークスペースというのがあります。コイツは『スペースと認識されないスペース』です。つまり改行されない。
文字列中の半角スペースに対してコイツをReplaceしてやれば解決ですね。

text=text.Replace(" ", "\u00A0");

こんだけ。
何も考えずに作ってると意外と見落としてて後で『表示が変だ!』ってなって発生個所を確認するのが面倒なので、文字列を扱う前に

string TextFix(string text)
{return text.Replace(" ", "\u00A0");}

なんて関数を作っておいて使うようにすれば手軽に回避できますね。

2020/1/20追記
当初はnbspを直接入力する形で書いていたのですが、どうも環境によってただの半角スペースとして認識されるっぽいので文字コードのままで入れる形に例文を修正しました。

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?