うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】Asset の Version を強制的に更新する

Unityのバージョンをアップデートすると、アセットの設定が変更されることがあります(serializedVersionが更新されることがあります)。

基本的に、アセットのメタファイルが差分があるときに更新される際に、その設定が変更されている場合は、設定も同時に変更されます。

たとえば、以下のような変更がある場合があります。

しかし、古い設定が残っている場合、次のエラーが発生することがあります。

Broken text PPtr in file ({FileName}) Local file identifier ({number})
doesn't exist! UnityEditor.GenericMenu:CatchMenu (object,string[],int)

基本的には、Unityのバージョンをアップデートする際に、全てのアセットの設定を更新することが望ましいです。そのために、AssetDatabase.ForceReserializeAssetsというAPIが提供されています。

これは、以下のようにメニューから呼び出すことで、すべてのアセットの再設定を行うことができます。

[MenuItem("Tools/ReserializeAssets")]
private static void ReserializeAssets()
{
    AssetDatabase.ForceReserializeAssets();
}