static void Initialize() { s_SpriteMeshToTextureCache.Clear(); string[] spriteMeshGUIDs = AssetDatabase.FindAssets("t:SpriteMesh"); List <string> needsOverride = new List <string>(); foreach (string guid in spriteMeshGUIDs) { SpriteMesh spriteMesh = LoadSpriteMesh(AssetDatabase.GUIDToAssetPath(guid)); if (spriteMesh) { UpdateCachedSpriteMesh(spriteMesh); UpgradeSpriteMesh(spriteMesh); if (s_SpriteMeshToTextureCache.ContainsKey(guid) && SpriteMeshUtils.NeedsOverride(spriteMesh)) { needsOverride.Add(s_SpriteMeshToTextureCache[guid]); } } } s_Initialized = true; needsOverride = needsOverride.Distinct().ToList(); AssetDatabase.StartAssetEditing(); foreach (string textureGuid in needsOverride) { AssetDatabase.ImportAsset(AssetDatabase.GUIDToAssetPath(textureGuid)); } AssetDatabase.StopAssetEditing(); }