Version: 2018.4
public static void ForceReserializeAssets ();


assetPathsThe paths to the assets that should be reserialized. If omitted, will reserialize all assets in the project.
optionsSpecify whether you want to reserialize the assets themselves, their .meta files, or both. If omitted, defaults to both.



When Unity loads old data from an asset or Scene file, the data is dynamically upgraded in memory, but not written back to disk unless the user does something that explicitly dirties the object (like changing a value on it). This method allows you to proactively load, upgrade, and write back to disk any asset or Scene files in the project, without having to manually make them dirty.

Unity's usual behaviour has a number of benefits, particularly for projects with version control systems, where upgrading all the assets proactively after moving to a new Unity version would result in massive lists of changed files to be committed. However, it also has the drawback of upgrades being 'mixed in' with deliberate changes as users continue to work on a project. This method allows you to be proactive in a controlled way, deciding exactly which assets you want to upgrade and when.