はじめに
どうも、どうまずです。
iOSのバージョンがiOS9になり、いろいろ問題が発生していますね。
ゲームで文字化け発生っていう記事も何個かありましたが、特殊なことやっていない我々には、影響ないだろうと思ってたら、このエラーが直撃しました・・・。
リリースしてなくてよかった・・・
原因・解決策
まず、発生状況なのですが、
unityのEditor上では文字化けは発生せず、iPhoneの実機テスト時に発生、日本語が全て「?」に変わっていました。
ネットで調べてみましたが、どうも困っている系の記事はありましたが、原因・対策の記載がない・・・。
自分で調査するしかないかな・・・
ゆうに相談したところ、障害の状況から
1.使ってるフォントがiOS9に対応していなく化けた。
2.UNITYで扱っているマルチバイトのエンコーディングが特殊だったため、iOS9の規格から外れた。
という可能性があるとのこと・・・
まず、フォントが対応しなくなった可能性から調査です。
私たちが利用していたフォントは「Arial」というよくあるフォントです。
試しに、別のフォントにしてiPhone実機確認をしたところ・・・
表示された!
え?まさか、「Arial」がダメになったのか?
影響範囲調査のため、「ゲームスタート」を「ゲームstart!」に変更。
その結果は
続いて、「GameStat!?」(Gameと!が全角)としてみました。
結果は次の通り
調査の結果、
「iOS9からArialのマルチバイト文字が利用出来なくなった。」
との結論に至りました。
そもそも、Arialは本来シングルバイト文字のフォントだったのですが、無理やりマルチバイトを表示できるようにしていたそうです。
対応方針としては、マルチバイト文字はArialではなく、別のフォントを利用する。
にして、Arialという一般的に利用されている文字のマルチバイト表示を切るとは、なかなか大胆な仕様変更ですね・・・ビビります!
[追記(重要)]
今までunity4で開発していたのですが、いろいろありunity5にバージョンあげてみようってことになりました。
バージョンアップをした結果、文字化けが治ってる!!
つまり、結論は変更です。
「iOS9ではunity4で利用していた古いArialが利用できなくなった。」
これが正解だったようです。
最初の結論だったら、もっと混乱が起きてもいいと思ったのですが、こういうことだったのですね。
unity4で開発している人は勇気を出してバージョンアップですね。