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 () { //查找指定路径下指定类型的所有资源, ...
随机推荐
- java流类
总结:new FileInputStream package com.ds; import java.io.*; import com.da.fgbv; public class rter { pub ...
- css基础知识一
1.CSS (Cascding Style Sheet)层叠样式表 级联样式表 样式表 2.CSS作用: 修改页面中元素的显示样式 能够实现内容与表现的分离 提高代码的可重用性和可维护性 3.导入CS ...
- 杂项:zabbix(WEB界面的提供分布式系统监视以及网络监视功能)
ylbtech-杂项:zabbix(WEB界面的提供分布式系统监视以及网络监视功能) zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.z ...
- strdup与strndup
strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函数成对出现. extern char *strdup(char *s); 头文件:string.h 功 能: 将串拷贝到新 ...
- jquery 键盘事件的使用方法详解
转自:https://www.jb51.net/article/123579.htm jQuery处理键盘事件有三个函数,根据事件发生的顺序分别是: jquery 代码: 1. keydown(); ...
- CSS之边距合并
外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距.合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者. 情况1:当一个元素出现在另一个元素上面时,第一个元素的下外边距与第二个元 ...
- SM4算法的c++实现
百度到的论文已给出算法. flag为1为解密,flag为0是加密. #include<bits/stdc++.h> using namespace std; typedef long lo ...
- 安装yum在ubnutu上
安装yum在ubnutu上1:首先检测是否安装了build-essential程序包 apt-get install build-essential2.安装yumapt-get install yum ...
- mac下已装virtualbox运行genymotion还报错找不到虚拟机的解决办法
sudo ln -s /usr/local/bin/VBoxManage /usr/bin/VBoxManage
- android studio在windows上设置git/ssh
windows果然是与众不同的,凡事都要那么麻烦一点点(当然..是对程序员来说..) 一开始,我想用cygwin里的git,就省得我再多装一套软件,配置也可以统一,但事实证明不行 在android s ...