Unity 5.4移行時にuGUI TextのY座標がずれる問題への対応
現在Unity 5.2でゲームを開発しているのですが、利用しているAssetがUnity 5.4を要求するようになったこともあって、5.4への移行を試してみました。その際に表題の問題が発覚したので情報をまとめてみます。
実はUnity 5.3が出た時にも一度移行を試したのですが、いくつか問題が発生したためにバージョンアップは控えていました。今回5.4で試したところ、小規模な問題(NUnitがAssetから本体に取り込まれたため削除が必要だった、など)はありましたが、すんなりビルドまで完了し、ゲーム自体もひとまず動いているようでした。
ただ、UIのいくつかでテキストのずれが発生していることがわかりました。
しばらく悩んだのですが、そういえばFacebookの「Unityお助けコミュニティー」にUnity Japanの方が書き込みをしてたなと思い出し、調べたところまさにこの問題が発生しているようです。
Unity 5.4ではUnity 5.3で配置したuGUIのTextのY座標がずれる(うちの場合は5.2から5.4なんですが…)、ということでバッチ処理でPrefabのなかに含まれるTextコンポーネントを探して座標を移動するスクリプトも公開されてます。
バッチを試したところ、自分のプロジェクトではうまくいかないケースがあり(上記のスクリーンショットの場合、アンダーラインをTextオブジェクトの子要素にしていて問題が複雑)、量も少ないので思い当たるところを探して手で直してしまいました。
バッチで作業をすると、どのオブジェクトにアジャストが行われたのかわからず、知らずに問題を発生させるのが心配になります。むしろ、手作業の方が時間がかからないかもしれません。しかし、対応する部分が大量だと確認の手間も相当なので、規模の大きなプロジェクトだと大変ですね。
正直これはパッチなりでUnity側で直してほしかったと思いました。Unity Japanが修正スクリプトを公開しているということは、日本語に特有の問題なんでしょうか。というか、影響を受けるプロジェクトが多そうな気がするんですが、みなさん大丈夫なんでしょうか。
宣伝:Unityを使って開発中のゲーム「カラクリ合戦伝」をGoogle Playでベータ配信中です。ぜひ試してみて下さい。