Nenhuma descrição
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

RefreshAsset.cs 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using UnityEditor.PackageManager;
  2. using Unity.PlasticSCM.Editor.AssetUtils.Processor;
  3. namespace Unity.PlasticSCM.Editor.AssetUtils
  4. {
  5. internal static class RefreshAsset
  6. {
  7. internal static void BeforeLongAssetOperation()
  8. {
  9. UnityEditor.AssetDatabase.DisallowAutoRefresh();
  10. }
  11. internal static void AfterLongAssetOperation()
  12. {
  13. UnityEditor.AssetDatabase.AllowAutoRefresh();
  14. UnityAssetDatabase();
  15. // Client is an API to interact with package manager
  16. // Client.Resolve() will resolve any pending packages added or removed from the project.
  17. // https://docs.unity3d.com/ScriptReference/PackageManager.Client.html
  18. Client.Resolve();
  19. }
  20. internal static void UnityAssetDatabase()
  21. {
  22. UnityEditor.AssetDatabase.Refresh(
  23. UnityEditor.ImportAssetOptions.Default);
  24. UnityEditor.VersionControl.Provider.ClearCache();
  25. if (PlasticPlugin.AssetStatusCache != null)
  26. PlasticPlugin.AssetStatusCache.Clear();
  27. AssetPostprocessor.SetIsRepaintNeededAfterAssetDatabaseRefresh();
  28. }
  29. internal static void VersionControlCache()
  30. {
  31. UnityEditor.VersionControl.Provider.ClearCache();
  32. if (PlasticPlugin.AssetStatusCache != null)
  33. PlasticPlugin.AssetStatusCache.Clear();
  34. ProjectWindow.Repaint();
  35. RepaintInspector.All();
  36. }
  37. }
  38. }