50 lines
1.5 KiB
C#
Raw Permalink Normal View History

2024-09-20 20:30:10 +02:00
using UnityEditor.PackageManager;
using Unity.PlasticSCM.Editor.AssetUtils.Processor;
namespace Unity.PlasticSCM.Editor.AssetUtils
{
internal static class RefreshAsset
{
internal static void BeforeLongAssetOperation()
{
UnityEditor.AssetDatabase.DisallowAutoRefresh();
}
internal static void AfterLongAssetOperation()
{
UnityEditor.AssetDatabase.AllowAutoRefresh();
UnityAssetDatabase();
// Client is an API to interact with package manager
// Client.Resolve() will resolve any pending packages added or removed from the project.
// https://docs.unity3d.com/ScriptReference/PackageManager.Client.html
Client.Resolve();
}
internal static void UnityAssetDatabase()
{
UnityEditor.AssetDatabase.Refresh(
UnityEditor.ImportAssetOptions.Default);
UnityEditor.VersionControl.Provider.ClearCache();
if (PlasticPlugin.AssetStatusCache != null)
PlasticPlugin.AssetStatusCache.Clear();
AssetPostprocessor.SetIsRepaintNeededAfterAssetDatabaseRefresh();
}
internal static void VersionControlCache()
{
UnityEditor.VersionControl.Provider.ClearCache();
if (PlasticPlugin.AssetStatusCache != null)
PlasticPlugin.AssetStatusCache.Clear();
ProjectWindow.Repaint();
RepaintInspector.All();
}
}
}