うどんてっくメモ

技術的なメモをまったりと

【Unity】インストールされているプラットフォームのモジュールの分だけmetaに差分が出てしまう

最近、仕事のチーム内でUnityのバージョンを更新したところ、テクスチャのmetaに差分が意図せず生まれてしまうようになりました。

この差分はテクスチャのプラットフォームごとのimport設定に基づくものです。たとえばAndroidiOSWebGLとモジュールを入れていれば、その分の設定がmetaとして自動で生成されました。

従来だとプラットフォームのタブを選択し、特定の設定を保存しない限りは生まれていなかったのですが、どうやらimportした時に自動でデフォルト設定を行うようになったっぽいです。

プラットフォームのモジュール

Unityのインスペクタ上の設定表示

チーム内ではgitによるバージョン管理を行なっています。誰かが画像を新規にコミットするたびに、インストールしているモジュールの差によって作業者のローカルにmetaの差分が出てしまうのはいささか面倒でした。

また、チームではコードの整理を定期的に行い、プルリクエストを出す仕組みを運用しています。 そのコードの整理を行うCI環境で、特定のプラットフォームのモジュールが都合上必要でした。そのため、そのmetaの差分が毎度関係ないコードの整理のプルリクエストに紛れるようになってしまいました。

検証してみると、以下のバージョンでは確実に起きていることを確認しました。
2022については最新のLTSで、2021以前のバージョンではどこかのパッチバージョンから適用されてそうでした。(2021.3.0f1ではそういった現象は起きなかった)

  • Unity 2021.3.31f
  • Unity 2022.3.0f1

チームとして、以下の取り組みでなんとか誤魔化しています。

  • Unityを開いて差分をコミットしてプルリクエストを出す仕組みを定期的に稼働
  • チームメンバーはプロジェクトで使うバージョンのUnityについて、指定のプラットフォームのモジュールをインストール
  • チームメンバーは既存で入っている指定外のプラットフォームのモジュールを削除

モジュールの削除については、Unity Hubにメニューがなかったため直接Applications配下にあるモジュールを物理的に削除することでなんとかなりました。(良い方法あれば教えてください)

個人で開発する分には問題ないのですが、チーム開発だとmetaの差分はなかなかに困りものです。 Unityさんがいい感じにしてくれることを祈っています。