NGUI でスクリプトから、ラベルの文字列を設定すると ??? という形で文字化けしてしまった。
以下の様に、スクリプトからラベルの文字列を設定した時に起こった。
GetComponent<UILabel>().text = "日本語のラベル";
原因は、上記を含む .cs ファイルが UTF-8 BOM 付きではなく、UTF-8 になっていたこと。
Unity のコードを書くときに、Xamarin を使っているのだが、バージョンを上げた時に BOM がつくかどうか挙動が変わった模様。
nkf を使って、以下のように BOM 付きに変換してやると、文字化けせずに実行される。
nkf -w8 --overwrite hoge.cs
nkf は Homebrew で入れた。