Для создания редакторов порой приходится делать собственные браузеры, которые так или иначе используют нативные изображения.
Ниже я хотел бы рассказать немного о том, как этого добиться.

Достать иконку по умолчанию

Иконка по умолчанию - это то, что достается, если у изображения нет превью, либо оно еще не подгружено.
Сделать это можно по типу объекта с помощью функции AssetPreview.GetMiniTypeThumbnail. Например:
var defaultIcon = AssetPreview.GetMiniTypeThumbnail(typeof (GameObject));
Либо через функцию AssetPreview.GetMiniThumbnail, в которой можно указать экземпляр объекта. Однако, если экземпляр пуст, или тип не имеет иконки мы получим null, что не всегда хорошо. Чтобы этого избежать можно подгружать иконки по их названиям.
Я советую использовать для "неопределенного типа" иконку префаба, она визуально хорошо ассоциируется с любым ассетом, а для null экземпляра - иконку пустого префаба.
Чтобы достать определенную иконку, нужно воспользоваться командой EditorGUIUtility.LoadRequired() или EditorGUIUtility.Load. Различаются эти команды тем, что LoadRequired дополнительно пишет в логе ошибку, если текстура не найдена.
Список путей иконок для файлов таков
icons/generated/animation icon.asset
icons/generated/animationclip icon.asset
icons/generated/animator icon.asset
icons/generated/animatorcontroller icon.asset
icons/generated/animatoroverridecontroller icon.asset
icons/generated/animatorstate icon.asset
icons/generated/animatorstatemachine icon.asset
icons/generated/animatortransition icon.asset
icons/generated/anystatenode icon.asset
icons/generated/areaeffector2d icon.asset
icons/generated/arealight icon.asset
icons/generated/assetstore icon.asset
icons/generated/audiochorusfilter icon.asset
icons/generated/audioclip icon.asset
icons/generated/audiodistortionfilter icon.asset
icons/generated/audioechofilter icon.asset
icons/generated/audiohighpassfilter icon.asset
icons/generated/audiolistener icon.asset
icons/generated/audiolowpassfilter icon.asset
icons/generated/audiomixercontroller icon.asset
icons/generated/audiomixergroup icon.asset
icons/generated/audiomixersnapshot icon.asset
icons/generated/audiomixerview icon.asset
icons/generated/audioreverbfilter icon.asset
icons/generated/audioreverbzone icon.asset
icons/generated/audiosource icon.asset
icons/generated/avatar icon.asset
icons/generated/avatarmask icon.asset
icons/generated/billboardasset icon.asset
icons/generated/blendtree icon.asset
icons/generated/boo script icon.asset
icons/generated/boxcollider icon.asset
icons/generated/boxcollider2d icon.asset
icons/generated/camera icon.asset
icons/generated/canvas icon.asset
icons/generated/canvasgroup icon.asset
icons/generated/canvasrenderer icon.asset
icons/generated/capsulecollider icon.asset
icons/generated/cgprogram icon.asset
icons/generated/charactercontroller icon.asset
icons/generated/characterjoint icon.asset
icons/generated/chorusfilter icon.asset
icons/generated/circlecollider2d icon.asset
icons/generated/cloth icon.asset
icons/generated/computeshader icon.asset
icons/generated/configurablejoint icon.asset
icons/generated/constantforce icon.asset
icons/generated/constantforce2d icon.asset
icons/generated/cs script icon.asset
icons/generated/cubemap icon.asset
icons/generated/d_areaeffector2d icon.asset
icons/generated/d_audiomixerview icon.asset
icons/generated/d_canvas icon.asset
icons/generated/d_canvasgroup icon.asset
icons/generated/d_canvasrenderer icon.asset
icons/generated/d_gridlayoutgroup icon.asset
icons/generated/d_horizontallayoutgroup icon.asset
icons/generated/d_particlesystem icon.asset
icons/generated/d_platformeffector2d icon.asset
icons/generated/d_recttransform icon.asset
icons/generated/d_surfaceeffector2d icon.asset
icons/generated/d_verticallayoutgroup icon.asset
icons/generated/d_wheeljoint2d icon.asset
icons/generated/defaultasset icon.asset
icons/generated/defaultslate icon.asset
icons/generated/directionallight icon.asset
icons/generated/distancejoint2d icon.asset
icons/generated/echofilter icon.asset
icons/generated/edgecollider2d icon.asset
icons/generated/editorsettings icon.asset
icons/generated/favorite icon.asset
icons/generated/fixedjoint icon.asset
icons/generated/flare icon.asset
icons/generated/flarelayer icon.asset
icons/generated/folder icon.asset
icons/generated/folderempty icon.asset
icons/generated/folderfavorite icon.asset
icons/generated/font icon.asset
icons/generated/gamemanager icon.asset
icons/generated/gameobject icon.asset
icons/generated/gisraster icon.asset
icons/generated/gissplatdata icon.asset
icons/generated/gisterrain icon.asset
icons/generated/guilayer icon.asset
icons/generated/guiskin icon.asset
icons/generated/guitext icon.asset
icons/generated/guitexture icon.asset
icons/generated/halo icon.asset
icons/generated/highpassfilter icon.asset
icons/generated/hingejoint icon.asset
icons/generated/hingejoint2d icon.asset
icons/generated/horizontallayoutgroup icon.asset
icons/generated/humantemplate icon.asset
icons/generated/js script icon.asset
icons/generated/lensflare icon.asset
icons/generated/light icon.asset
icons/generated/lightmapparameters icon.asset
icons/generated/lightmapsnapshot icon.asset
icons/generated/lightprobegroup icon.asset
icons/generated/lightprobes icon.asset
icons/generated/linerenderer icon.asset
icons/generated/lodgroup icon.asset
icons/generated/lowpassfilter icon.asset
icons/generated/material icon.asset
icons/generated/mesh icon.asset
icons/generated/meshcollider icon.asset
icons/generated/meshfilter icon.asset
icons/generated/meshparticleemitter icon.asset
icons/generated/meshrenderer icon.asset
icons/generated/metafile icon.asset
icons/generated/microphone icon.asset
icons/generated/motion icon.asset
icons/generated/movietexture icon.asset
icons/generated/muscleclip icon.asset
icons/generated/navmeshagent icon.asset
icons/generated/navmeshdata icon.asset
icons/generated/navmeshobstacle icon.asset
icons/generated/networkview icon.asset
icons/generated/occlusionarea icon.asset
icons/generated/occlusionportal icon.asset
icons/generated/offmeshlink icon.asset
icons/generated/particleanimator icon.asset
icons/generated/particleemitter icon.asset
icons/generated/particlerenderer icon.asset
icons/generated/particlesystem icon.asset
icons/generated/physicmaterial icon.asset
icons/generated/physicsmaterial2d icon.asset
icons/generated/platformeffector2d icon.asset
icons/generated/pointeffector2d icon.asset
icons/generated/polygoncollider2d icon.asset
icons/generated/prefab icon.asset
icons/generated/prefabmodel icon.asset
icons/generated/prefabnormal icon.asset
icons/generated/proceduralmaterial icon.asset
icons/generated/projector icon.asset
icons/generated/raycastcollider icon.asset
icons/generated/recttransform icon.asset
icons/generated/reflectionprobe icon.asset
icons/generated/rendertexture icon.asset
icons/generated/reverbfilter icon.asset
icons/generated/rigidbody icon.asset
icons/generated/rigidbody2d icon.asset
icons/generated/sceneasset icon.asset
icons/generated/scriptableobject icon.asset
icons/generated/search icon.asset
icons/generated/shader icon.asset
icons/generated/shadervariantcollection icon.asset
icons/generated/skinnedmeshrenderer icon.asset
icons/generated/skybox icon.asset
icons/generated/sliderjoint2d icon.asset
icons/generated/speedtreemodel icon.asset
icons/generated/spherecollider icon.asset
icons/generated/spotlight icon.asset
icons/generated/springjoint icon.asset
icons/generated/springjoint2d icon.asset
icons/generated/sprite icon.asset
icons/generated/spritecollider icon.asset
icons/generated/spriterenderer icon.asset
icons/generated/substancearchive icon.asset
icons/generated/surfaceeffector2d icon.asset
icons/generated/terrain icon.asset
icons/generated/terraincollider icon.asset
icons/generated/terraindata icon.asset
icons/generated/textasset icon.asset
icons/generated/textmesh icon.asset
icons/generated/texture icon.asset
icons/generated/texture2d icon.asset
icons/generated/trailrenderer icon.asset
icons/generated/transform icon.asset
Так же для предварительного просмотра вы можете создать вот такое окно, и вызывать его через Window/Support/Embed Textures Viewer:
Скрипт окна, кидать в папку Editor
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using UnityEditor;
using UnityEngine;

namespace UnityEditor
{
    public class EmbedResourcesViewer : EditorWindow
    {
        [MenuItem("Window/Support/Embed Textures Viewer")]
        public static void Create()
        {
            GetWindow<EmbedResourcesViewer>(true, "Embed Textures Viewer", true);
        }

        public int index = 0;
        public string find = "";
        public Vector2 scroll;
        public Vector2 scrollProperties;
        public void OnGUI()
        {
            var up = Event.current.type == EventType.keyDown && Event.current.keyCode == KeyCode.UpArrow;
            var down = Event.current.type == EventType.keyDown && Event.current.keyCode == KeyCode.DownArrow;
            GUILayout.BeginHorizontal(GUILayout.ExpandHeight(true));
            {
                GUILayout.BeginVertical(GUILayout.Width(300));
                {
                    find = EditorGUILayout.TextField("Find: ", find, GUILayout.Width(300));
                    showAssets = bundleTextures.Where(x => x.path.Contains(find.ToLower())).ToArray();
                    GUI.SetNextControlName("two");

                    scroll = GUILayout.BeginScrollView(scroll, GUILayout.Width(300));

                    var array = showAssets.Select(x => x.path).ToArray();
                    var command2 = new GUIStyle("CN EntryBackOdd") { margin = new RectOffset() };
                    index = GUILayout.SelectionGrid(Mathf.Clamp(index, 0, array.Length - 1), array, 1, command2);
                    if (index >= array.Length)
                        index = 0;
                    GUILayout.EndScrollView();
                    GUILayout.BeginHorizontal(GUILayout.Width(300));
                    if (index >= 0 && index < array.Length)
                    {
                        GUILayout.Label(showAssets[index].path, GUILayout.Width(250));
                        if (GUILayout.Button("copy", "minibutton", GUILayout.ExpandWidth(false)))
                            EditorGUIUtility.systemCopyBuffer = showAssets[index].path;
                    }
                    GUILayout.EndHorizontal();

                }
                GUILayout.EndVertical();
                GUILayout.BeginVertical();
                scrollProperties = GUILayout.BeginScrollView(scrollProperties);
                if (showAssets.Length != 0)
                {
                    if (index > 0 && index < showAssets.Length - 1)
                    {
                        var asset = showAssets[index].asset;
                        GUILayout.Label(asset.name + " (" + asset.width + "/" + asset.height + ")");
                        GUILayout.Box(new GUIContent(showAssets[index].asset), GUIStyle.none);
                    }
                }
                GUILayout.EndScrollView();
                GUILayout.EndVertical();
            }
            GUILayout.EndHorizontal();

            var e = Event.current;
            {
                if (up)
                {
                    index--;
                    if (index < 0)
                        index = 0;
                    GUIUtility.keyboardControl = 0;
                    e.Use();
                    Repaint();
                }
                if (down)
                {
                    index++;
                    if (index >= showAssets.Length)
                        index = showAssets.Length - 1;
                    GUIUtility.keyboardControl = 0;
                    e.Use();
                    Repaint();
                }
            }
        }

        private EmbedAsset[] showAssets = new EmbedAsset[0];

        private static EmbedAsset[] bundleTextures;

        static EmbedResourcesViewer()
        {
            var allEmbedAssets = AssetDatabase.LoadAllAssetsAtPath("Library/unity editor resources").ToList();
            var assetBundleObject = allEmbedAssets.FirstOrDefault(x => x is AssetBundle) as AssetBundle;
            if (assetBundleObject != null)
            {
                var paths = assetBundleObject.GetAllAssetNames();
                bundleTextures = paths.Select(x => new EmbedAsset
                {
                    path = x,
                    asset = EditorGUIUtility.Load(x) as Texture2D
                }).Where(x => x.asset != null).ToArray();
            }
            else
                bundleTextures = new EmbedAsset[0];
        }

        private class EmbedAsset
        {
            public string path;
            public Texture2D asset;
        }
    }
}

Достать превью

К сожалению, с превью все немного иначе, здесь есть определенные правила.
Во-первых, превью подгружаются асинхронно, потому могут быть временно недоступны.
Во-вторых, они действуют только на файлы, уже хранящиеся в папке проекта.
Чтобы получить превью вы должны сделать нечто аналогичное:
var previewIcon = AssetPreview.GetAssetPreview(prefab);
Так как подгрузка может быть асинхронной такое прямое выражение может быть недостаточным - придется делать вызовы в отдельный поток.
Учтите, что так как превью подгружается не всегда, то в качестве иконки вы будете подавать условие аля
var icon = previewIcon ?? defaultIcon;
Часто объекты, к которым вы хотите получить превью - достаются не совсем верно. Например. если у вас в руках gameObject от префаба - и вы попробуете получить его превью - ничего не выйдет.
Для таких объектов есть специальная команда PrefabUtility.FindPrefabRoot(), с помощью которой можно получить сам префаб.
Так же иконки могут не подгрузиться из-за маленького размера кеша, что исправляется командой AssetPreview.SetPreviewTextureCacheSize()
`
ОЖИДАНИЕ РЕКЛАМЫ...