3
1

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 5 years have passed since last update.

【Unity】iOS13でタイ語が[?]になる問題

Last updated at Posted at 2019-10-07

現象

Unityで多言語に対応しようとすると「Arial」というデフォルトのフォントアセットを選択しておけば、システムフォントをよしなに使ってくれるので今まで問題がなかったのですが、iOS13で文字化けする現象が発生してます。

スクリーンショットはiOS13.2.1(iPhone8)です。画面のまん中に[?][?][?][?]となっているところが該当の文字化けです。
IMG_2922.PNG

調査

UnityのIssueでも報告されていて、タイ語以外にもアルメニア語、グルジア語で文字化けしてしまうようです。
詳しくはIssueの方を見ていただくといいかもしれないです。

実際に調べた結果をまとめます。

  • タイ語のフォントをセットすれば問題なく表示されます。
    スクリーンショットはiOS13.2.1(iPhone8)です。
    IMG_2923.PNG
  • iOS12.4.1では以下の通り普通にタイ語が表示されます。
    スクリーンショットはiOS12.4.1(iPhoneXR)です。
    IMG_0179.PNG
  • Android10では以下の通り普通にタイ語が表示されます。
  • Unityのバージョンも2018.3と2019.1で確認しましたが、同じ結果でした。

他にフォントをフォールバックさせシステムフォントを使う方法やiOSの言語設定をタイ語にするなど試しましたが、変わらずでした。

暫定対応

タイ語対応をしたアプリを公開してますので、Unityの改修を待っていられません。
以下の手順で対応しようと考えてます。

  1. タイ語フォントを入れ、文字化けを解消
  2. Unityが対応したらバージョンをあげる

幸いにもタイ語のフリーフォントがありますので、それを使って文字化け解消をします。
少しデフォルトのフォントより細いので、こだわりがあるのであれば代替とはいかないかもしれないです。
GPLフォント例外というライセンスを初めて知りました。クレジット表記をしたらいいのかよくわからなかったので、とりあえず追加しました。詳しい人がいましたら情報をお待ちしてます。

フォントのサイズは480KBでした。もっとフォントサイズが大きくなるかと思ったのですが、これくらいならとあまり神経質にならずに入れてしまいました。できるだけアプリのサイズが小さい方がユーザにとってはいいと思うのでオススメはしません。

以下のような感じで、タイ語に切り替えるタイミングでフォントをセットしました。

text.font = Resources.Load<Font> ("Fonts/THSarabunNew/THSarabunNew");

フォールバックで切り替えるようにしてもよかったのですが、暫定対応なのでコード上で分かりやすくTODOを書いておきたかったという理由で今回はコードで切り替えてます。

まとめ

原因がUnity側にあるのか、iOS側にあるのかさっぱり分かりませんが、とりあえず暫定対応で切り抜けたという話です。
他の方法を知ってましたら情報をお待ちしています。

追記(2019.11.14)

IssueにUnityからの回答が載ってました。原文はリンクからどうぞ。
要約すると「iOS13でアルメニア語・グルジア語・タイ語のUnityが使用してたデフォルトフォントが削除されたので、uGUIとTextMeshProでレンダリングできなくなってます。将来的にはTextMeshProで対応しますが、現状ではエディタ上でレンダリングされるフォントを用意すればiOSでも動きます。」
やっぱりフォントを用意しないとダメみたいです。
TextMeshProで対応っていうのも悩ましいですね。今のうちに改修するか。

参考

Unity Issue Tracker - [iOS 13.0] Some languages symbols are replaced with a [?] marks
https://issuetracker.unity3d.com/issues/ios-13-dot-0-all-thai-symbols-are-replaced-with-a-marks

フォント - Unity マニュアル
https://docs.unity3d.com/ja/2018.1/Manual/class-Font.html

【Unity】UnityでOSにインストールされてるフォントを使いたい - テラシュールブログ
http://tsubakit1.hateblo.jp/entry/2018/05/30/234314

タイの公的機関が発行する「無料のタイ語フォント」 | タイおん
https://thaion.net/thai-font-sipa

ฟอนต์.คอม » ฟอนต์สารบรรณ ปรับปรุงรุ่นใหม่ “Sarabun New”
https://www.f0nt.com/release/th-sarabun-new/

GPLフォント例外 - Wikipedia
https://ja.wikipedia.org/wiki/GPLフォント例外

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?