Unity2019.2.1f1をこれまで使っていたのですが、2021年に始まったiOSのアプリトラッキング透明性(ATT)への対応でつまづいたのと、Live2D Cubism SDKの対応の兼ね合いで2019.4.17f1にアップデートする事にしました。
なぜUnity2019.2じゃ駄目なの?
今年iOSで新たに開始されたATTという取り組みにおいては、アプリが広告等の為にアプリトラッキングを利用する場合は起動時に確認画面を出してユーザの許可を取る必要が出てきました。
このダイアログを出さないアプリは新規リリースやアプデがリジェクトされますので、広告SDKでIDFAを使わないかATT対応を行う必要があるようです。
そしてUnityアプリの場合、Unityで所定の処理を加えた後、iOSビルドでXCodeプロジェクトを出力した後にXCodeでまた所定の手順を行う事で対応する事が可能です。しかしXCodeで行うべき手順に必要な「Unityframework」というビルドターゲットがUnity2019.2までは生成されないのです。また、Unity側でも追加したスクリプトに対してEntryPointNotFoundExceptionが出てしまいます。2019.2以前でもどうにか対応できないか調べたのですが、見つける事ができませんでした。
なぜUnity2020以降じゃ駄目なの?
これも当然の疑問だと思います。私のアプリではLive2D Cubism SDKというものを使用しているのですが、現時点での最新バージョンは4.0です。
公式には4.0からUnity2020に対応しているという事でしたが、私の環境ではUnity2020では動作しませんでした。
というわけで、2019.3以上、2020未満のバージョンにアプデする必要がありました。
アプデ時の問題点とメモ
The specified version string contains wildcards, which are not compatible with determinism. Either remove wildcards from the version string, or disable determinism for this compilationというエラーが出る
↑のリンクの内容で解決できます。safe modeで起動します。
Effekseerを使っている場合はTextureの参照が切れている
Effekseerを使ってない人には無関係ですが、しっかり参照し直しましょう。
PlayModeで座標移動系の処理が妙に高速になる
Update()に座標移動系の処理を書いていたのが原因です。処理をFixedUpdate()の中に移すともとに戻りました。プレイモードでの実行時パフォーマンスが上がったのでしょうか?実機ではどうなのかは試していません。
まとめ
思ってよりスムーズに移行が完了しました。
また2019.2でたまに動作がおかしかった所(シーンを移っただけなのにすぐ編集済みになる(*が付く)、ビルドで保存先を選ぶ際にそこそこな確率で固まるなど)が治っているようなので結果的に良かったと思います。
ただ、Live2D SDKがはやく2020に完全対応してくれないと、今後iOSあたりがUnity2020以降でないと対応できないような新仕様対応を要求してきた時に詰むので何とかしてほしい所です。。
コメント
[…] ATT対応やLive2D Cubism SDKの関係でUnity2019.2からUnity2019.4にアップデートしてみたメモUnity2019.2.1f1をこれまで使っていたのですが、2021年に始まったiOSのアプリトラッキング透明性(ATT)への対応 […]