ProjectPaneExtensions.cs

October 31, 2018 ยท View on GitHub

using System.IO; using UnityEditor; using UnityEngine;

[InitializeOnLoad] public static class ProjectPaneExtensions { static ProjectPaneExtensions() { EditorApplication.projectWindowItemOnGUI -= Draw; EditorApplication.projectWindowItemOnGUI += Draw; }

static GUIStyle _labelStyle;
static void Draw( string guid, Rect selectionrect )
{
    var path = AssetDatabase.GUIDToAssetPath( guid );

    // skip invalid names
    if( string.IsNullOrWhiteSpace( path ) )
        return;

    // don't touch the two-column layout
    if( selectionrect.height > 20 )
        return;

    if( _labelStyle == null )
        _labelStyle = new GUIStyle( EditorStyles.label );

    var filename = Path.GetFileNameWithoutExtension( path );
    var extension = Path.GetExtension( path );

    var drawRect = selectionrect;
    drawRect.x += _labelStyle.CalcSize( new GUIContent( filename ) ).x + 12;
    drawRect.y++;

    GUI.Label( drawRect, extension );
}

}