using Pursuit.ScriptableObjects.Identifiables;
using UnityEditor;
namespace Pursuit.Editor
{
public class IdentifiableProcessor : AssetModificationProcessor
{
private static void OnWillCreateAsset(string path)
{
EditorApplication.delayCall += () => HandleAsset(path);
}
private static void HandleAsset(string path)
{
if (typeof(Identifiable).IsAssignableFrom(AssetDatabase.GetMainAssetTypeAtPath(path)))
{
var identifiable = AssetDatabase.LoadAssetAtPath<Identifiable>(path);
identifiable.ConfigureGuid();
EditorUtility.SetDirty(identifiable);
AssetDatabase.SaveAssetIfDirty(identifiable);
}
}
}
}