FindAssetsProvider.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using System;
  2. using System.Linq;
  3. using UnityEditor;
  4. using Object = UnityEngine.Object;
  5. namespace LLM.Editor.Analysis
  6. {
  7. /// <summary>
  8. /// Executes an AssetDatabase.FindAssets query and returns the results.
  9. /// </summary>
  10. public class FindAssetsProvider : IContextProvider
  11. {
  12. public object GetContext(Object target, string qualifier)
  13. {
  14. if (string.IsNullOrEmpty(qualifier))
  15. {
  16. return "Error: A query string (qualifier) is required for FindAssets.";
  17. }
  18. var guids = AssetDatabase.FindAssets(qualifier);
  19. if (guids != null && guids.Length != 0)
  20. {
  21. return guids.Select(guid => new
  22. {
  23. guid,
  24. path = AssetDatabase.GUIDToAssetPath(guid)
  25. }).ToArray();
  26. }
  27. if (!qualifier.Contains("guid:")) return Array.Empty<object>(); // Return an empty array if nothing is found
  28. var guid = qualifier.Replace("guid:", "");
  29. var path = AssetDatabase.GUIDToAssetPath(guid);
  30. return !string.IsNullOrEmpty(path) ? new [] { new { guid, path } } : Array.Empty<object>();
  31. }
  32. }
  33. }