概要
Unity のプロジェクトをアップデートした場合、
基本的にはすべてのアセットは古いバージョンの形式で保存されたままになります
そして、アセットを変更して保存すると、
そのアセットのみが新しいバージョンの形式で保存されます
そのため、Unity プロジェクトをバージョン管理している場合、
アップデート後にアセットを手動で変更して保存すると
手動で変更した内容とアップデートにより変更された内容が混在されてしまい、
差分の比較が見づらくなってしまいます
もしも、すべてのアセットを新しいバージョンの形式で保存し直したい場合は
using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { AssetDatabase.ForceReserializeAssets(); } }
上記のように AssetDatabase.ForceReserializeAssets 関数を使用します
特定のフォルダ階層以下のアセットのみシリアライズし直したい場合は
using System.Linq; using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var list = AssetDatabase .GetAllAssetPaths() .Where( c => c.StartsWith( "Assets/@Project/" ) ) ; AssetDatabase.ForceReserializeAssets( list ); } }
このようにアセットのパスの一覧を引数で指定します