39 lines
1.2 KiB
C#
39 lines
1.2 KiB
C#
using System;
|
|
using System.Linq;
|
|
using UnityEditor;
|
|
|
|
namespace Paps.UnityToolbarExtenderUIToolkit
|
|
{
|
|
internal class RefreshToolbarAutomaticExtenderOnSave : AssetModificationProcessor
|
|
{
|
|
private static string[] OnWillSaveAssets(string[] paths)
|
|
{
|
|
var groupDefinitionsAssetsPaths = AssetDatabase.FindAssets("t:" + nameof(ScriptableGroupDefinition))
|
|
.Select(guid => AssetDatabase.GUIDToAssetPath(guid))
|
|
.ToArray();
|
|
|
|
if (GroupDefinitionAssetIsBeingSaved(paths, groupDefinitionsAssetsPaths))
|
|
{
|
|
EditorApplication.update += RefreshOneTime;
|
|
}
|
|
|
|
return paths;
|
|
}
|
|
|
|
private static bool GroupDefinitionAssetIsBeingSaved(string[] savingAssetsPaths, string[] groupDefinitionsAssetsPaths)
|
|
{
|
|
return savingAssetsPaths.Any(path => groupDefinitionsAssetsPaths.Contains(path));
|
|
}
|
|
|
|
private static void RefreshOneTime()
|
|
{
|
|
EditorApplication.update -= RefreshOneTime;
|
|
Refresh();
|
|
}
|
|
|
|
private static void Refresh()
|
|
{
|
|
MainToolbarAutomaticExtender.Refresh();
|
|
}
|
|
}
|
|
} |