Unity在Project视图里面显示文件的拓展名
Unity在Project视图里面显示文件的拓展名
功能脚本如下:
using System.IO;
using System.Reflection;
using UnityEngine;
using UnityEditor; [InitializeOnLoad]
public static class ShowFileExtensions
{
static ShowFileExtensions()
{
EditorApplication.projectWindowItemOnGUI += ProjectWindowItemOnGUI;
} private static void ProjectWindowItemOnGUI(string guid, Rect rect)
{
string assetPath = AssetDatabase.GUIDToAssetPath(guid);
Object obj = AssetDatabase.LoadAssetAtPath<Object>(assetPath); if (obj != null && AssetDatabase.IsMainAsset(obj) && !IsDirectory(obj))
{
if (showBigIcon)
{
string extension = Path.GetExtension(assetPath);
GUI.Label(rect, extension, EditorStyles.boldLabel);
}
else
{
var fileName = Path.GetFileName(assetPath);
var labelRect = rect.Translate();
GUI.Label(labelRect, fileName);
}
} EditorApplication.RepaintProjectWindow();
} private static bool showBigIcon
{
get { return IsTwoColumnMode && listAreaGridSize > 16f; }
} private static bool IsTwoColumnMode
{
get
{
var projectWindow = GetProjectWindow();
var projectWindowType = projectWindow.GetType();
var modeFileInfo = projectWindowType.GetField("m_ViewMode", BindingFlags.Instance | BindingFlags.NonPublic);
int mode = (int) modeFileInfo.GetValue(projectWindow);
return mode == 1;
}
} private static float listAreaGridSize
{
get
{
var projectWindow = GetProjectWindow();
var projectWindowType = projectWindow.GetType();
var propertyInfo = projectWindowType.GetProperty("listAreaGridSize", BindingFlags.Instance | BindingFlags.Public);
return (float) propertyInfo.GetValue(projectWindow, null);
}
} private static EditorWindow GetProjectWindow()
{
if (EditorWindow.focusedWindow != null && EditorWindow.focusedWindow.titleContent.text == "Project")
{
return EditorWindow.focusedWindow;
} return GetExistingWindowByName("Project");
} private static EditorWindow GetExistingWindowByName(string name)
{
EditorWindow[] windows = Resources.FindObjectsOfTypeAll<EditorWindow>();
foreach (var item in windows)
{
if (item.titleContent.text == name)
{
return item;
}
} return default(EditorWindow);
} private static Rect Translate(this Rect rect)
{
rect.x += 15.8f;
rect.y += 0.9f;
return rect;
} private static bool IsDirectory(Object obj)
{
if (obj == null)
{
return false;
} return obj is DefaultAsset && !AssetDatabase.IsForeignAsset(obj);
}
}
Unity在Project视图里面显示文件的拓展名的更多相关文章
- Animator窗口视图Project视图PlayerIdleAnimation和PlayerWalkingAnimation
Animator窗口视图Project视图PlayerIdleAnimation和PlayerWalkingAnimation 通过上一小节的操作,我们新建了2个动画:PlayerIdleAnimat ...
- C# 之 获取文件名及拓展名
1.用Path类的方法(最常用) string fullPath = @"\WebSite\Default.aspx"; string filename = System.IO.P ...
- 用SQL脚本移除视图中存在的机器名
用SQL脚本移除视图中存在的机器名 例子: msccdr.cdr.DimRMAReturnMethod CREATE VIEW CDR.DimRMAReturnMethod ( ReturnMetho ...
- Win7怎么显示文件的后缀名
Win7怎么显示文件的后缀名.. --------------- -------------- --------------- -------------- --------------- ----- ...
- 关于Error:Maven Resources Compiler: Maven project configuration required for module '项目名' isn't available. Compilation of Maven projects is supported only&
总是出现Error:Maven Resources Compiler: Maven project configuration required for module '项目名' isn't avai ...
- Win10下默认显示文件的扩展名
默认不显示文件的后缀名 1.右击此电脑,点击属性 2.点击控制面板主页 3.点击文件资源管理器选项 4.切换到查看选项卡,取消勾选“隐藏已知文件类型的扩展名”,应用->确定 结果:
- Linux学习笔记:split切分文件并按规律命名及添加拓展名
基础知识 功能:使用 shell 的 split 可以将一个大文件分割成很多个小文件,有时文件太大处理起来不方便就需要使用到了. 在默认情况下将按照每1000行切割成一个小文件. 语法: split ...
- PHP获取文件拓展名的方法
1.用strrchar()函数,查找字符串在另一字符串中最后出现的位置,并返回该位置到字符串最后的所有字符(返回结果包括点).即返回拓展名前 点 到结尾的字符,即为扩展名.注意与strchar() ...
- Unity查找Editor下Project视图中特定的资源
[MenuItem("Tools/Check Text Count")] public static void CheckText () { //查找指定路径下指定类型的所有资源, ...
随机推荐
- 弱网测试--使用fiddle进行弱网测试
数据源于:http://blog.csdn.net/eleven521/article/details/19089671 弱网测试原理以及方法(一)一.为什么要进行弱网测试?按照移动特性,各种网络连接 ...
- Linux编程里getopt_long_only函数用法详解
在程序中难免需要使用命令行选项,可以选择自己解析命令行选项,但是有现成的,何必再造轮子.下面介绍使用getopt_long_only和getopt_long(两者用法差不多)解析命令行选项. 程序中主 ...
- React 特别需要注意的地方
如图:
- javascript之系统对话框
浏览器通过alert(),confirm()和prompt()方法调用系统对话框,向用户显示信息. alert()接受一个字符串并显示给用户,结果是显示一个对话框,其中包括指定的文本和一个OK(“确定 ...
- C++经典问题:狐狸找兔子
问题描述: 围绕着山顶有10个洞,一只狐狸和一只兔子住在各自的洞里.狐狸想吃掉兔子.一天,兔子对狐狸说:"你想吃我有一个条件,先把洞从1-10编上号,你从10号洞出发,先到1号洞找我:第二次 ...
- SPOJ-TTM To the moon
一句话题意:写一个支持区间修改,区间求和的可持久化数据结构. 考虑使用主席树,然而,区间修改怎么办? 似乎有标记永久化的方法. 对于线段树上完全覆盖标记产生贡献的区间,我们直接打上一个$tag$,而对 ...
- 《鸟哥的Linux私房菜》读书笔记5
1.shell script 用在系统管理上面是很好的一项工具,但是用在处理大量数值运算上, 就不够好了; 2.shell script 其实就是纯文字文件 (ASCII) ,我们可以编辑这个档案, ...
- dos下操作Mysql数据库
先配置完环境变量之后,然后就可以使用mysql 命令了.
- Logstash过滤插件
filter初级 Logstash安装 ### 设置YUM源 # rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch # t ...
- 远程桌面连接KVM虚拟机
问题描述 有些时候,由于网络存在问题,虚拟机无法获取到IP地址,无法使用spice或vnc来连接虚拟机,但是又需要连到虚拟机来排查故障 解决办法 编辑虚拟机配置 设置xml命名空间 <domai ...