internal static Texture2D GetAssetThumbnailFromPath(string path) { var thumbnail = GetAssetPreviewFromGUID(AssetDatabase.AssetPathToGUID(path)); if (thumbnail) { return(thumbnail); } thumbnail = AssetDatabase.GetCachedIcon(path) as Texture2D; return(thumbnail ?? InternalEditorUtility.FindIconForFile(path)); }
internal static SearchProvider CreateProvider() { return(new SearchProvider(type, displayName) { filterId = "store:", fetchItems = (context, items, provider) => { if (s_CurrentSearchRequestOp != null) { s_CurrentSearchRequestOp.completed -= SearchCompleted; } s_SearchId = context.searchId; s_Provider = provider; s_AddAsyncItems = context.sendAsyncItems; s_CurrentSearchRequest = UnityWebRequest.Get(url + context.searchQuery); s_CurrentSearchRequest.SetRequestHeader("X-Unity-Session", InternalEditorUtility.GetAuthToken()); s_CurrentSearchRequestOp = s_CurrentSearchRequest.SendWebRequest(); s_CurrentSearchRequestOp.completed += SearchCompleted; }, fetchThumbnail = (item, context) => { if (item.thumbnail) { return item.thumbnail; } if (s_CurrentSearchAssetData.ContainsKey(item.id)) { var searchPreview = s_CurrentSearchAssetData[item.id]; if (searchPreview.preview) { item.thumbnail = s_CurrentSearchAssetData[item.id].preview; } if (item.thumbnail) { return item.thumbnail; } if (searchPreview.request == null) { searchPreview.request = UnityWebRequestTexture.GetTexture(searchPreview.staticPreviewUrl); searchPreview.requestOp = searchPreview.request.SendWebRequest(); searchPreview.requestOp.completed += TextureFetched; } } item.thumbnail = InternalEditorUtility.FindIconForFile(item.label); return item.thumbnail ?? Icons.store; }, onDisable = () => { foreach (var sp in s_CurrentSearchAssetData.Values) { if (sp.preview) { UnityEngine.Object.DestroyImmediate(sp.preview); } sp.request = null; sp.requestOp = null; } s_CurrentSearchAssetData.Clear(); } }); }