Unity修改Project下的Assets的子文件的图标

Unity修改文件夹的图标

示例:

在右键可以创建指定文件夹。

复制代码
github链接
https://github.com/SeaeeesSan/SimpleFolderIcon

CSDN资源的链接
https://download.csdn.net/download/GoodCooking/89347361
去GitHub下载支持原作者哦。

重要的事情

截图来自GitHub 。

  1. Unity版本是: Unity2019.4 or later
  2. 从GitHub上下载的只能是创建文件夹之后,自己修改名字然后会自动修改图标。修改的图标必须在SimpleFolderIcon/Icons下有对应的图片才会修改,没有对应的图片是不会修改的。
  3. 如果想添加更多风格的文件夹图标,在SimpleFolderIcon/Icons添加图片,然后将图片的名称改为需要修改图标的文件夹名称即可。
  4. 如果修改SimpleFolderIcon的位置,则需要修改IconDictionaryCreator.cs
csharp 复制代码
        private const string AssetsPath = "SimpleFolderIcon/Icons";

的路径。

  1. 自带的文件夹图标有:
java 复制代码
Animations
Audio
Editor
Fonts
Materials
Models
Plugins
Prefabs
Presets
Resources
Scenes
Scripts
Settings
Shaders
Sprites
Textures

我自己添加的:

java 复制代码
  StreamingAssets    Unity系统定义文件夹 
  ThirdPartyPlugins   第三方插件
  CertificateFolder     证书文件夹
  1. 在GIF中右键显示Folder_WithIcon需要添加编辑器脚本CreateCustomStyleFolder.cs
csharp 复制代码
using UnityEngine;
using UnityEditor;
using System.IO;

/// <summary>
/// 创建自定义风格的文件夹
/// </summary>
public class CreateCustomStyleFolder : MonoBehaviour
{
    [MenuItem("Assets/Create/Folder_WithIcon/Animations", false, 10)]
    private static void CreateAnimationsFolder()
    {
        CreateFolder("Animations");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/Audio", false, 11)]
    private static void CreateAudioFolder()
    {
        CreateFolder("Audio");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/Editor", false, 12)]
    private static void CreateEditorFolder()
    {
        CreateFolder("Editor");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/Fonts", false, 13)]
    private static void CreateFontsFolder()
    {
        CreateFolder("Fonts");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/Materials", false, 14)]
    private static void CreateMaterialsFolder()
    {
        CreateFolder("Materials");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/Models", false, 15)]
    private static void CreateModelsFolder()
    {
        CreateFolder("Models");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/Plugins", false, 16)]
    private static void CreatePluginsFolder()
    {
        CreateFolder("Plugins");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/Prefabs", false, 17)]
    private static void CreatePrefabsFolder()
    {
        CreateFolder("Prefabs");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/Presets", false, 18)]
    private static void CreatePresetsFolder()
    {
        CreateFolder("Presets");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/Resources", false, 19)]
    private static void CreateResourcesFolder()
    {
        CreateFolder("Resources");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/Scenes", false, 20)]
    private static void CreateScenesFolder()
    {
        CreateFolder("Scenes");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/Scripts", false, 21)]
    private static void CreateScriptsFolder()
    {
        CreateFolder("Scripts");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/Settings", false, 22)]
    private static void CreateSettingsFolder()
    {
        CreateFolder("Settings");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/Shaders", false, 23)]
    private static void CreateShadersFolder()
    {
        CreateFolder("Shaders");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/Sprites", false, 24)]
    private static void CreateSpritesFolder()
    {
        CreateFolder("Sprites");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/Textures", false, 25)]
    private static void CreateTexturesFolder()
    {
        CreateFolder("Textures");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/StreamingAssets", false, 26)]
    private static void CreateStreamingAssetsFolder()
    {
        CreateFolder("StreamingAssets");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/ThirdPartyPlugins", false, 27)]
    private static void CreateThirdPartyPluginsFolder()
    {
        CreateFolder("ThirdPartyPlugins");
    }

    [MenuItem("Assets/Create/Folder_WithIcon/CertificateFolder", false, 28)]
    private static void CreateCertificateFolder()
    {
        CreateFolder("CertificateFolder");
    }


    private static void CreateFolder(string folderName)
    {
        // 获取鼠标右键点击的位置的路径
        string assetPath = AssetDatabase.GetAssetPath(Selection.activeObject);
        if (string.IsNullOrEmpty(assetPath))
        {
            assetPath = "Assets";
        }
        else if (Path.GetExtension(assetPath) != "")
        {
            assetPath = assetPath.Replace(Path.GetFileName(AssetDatabase.GetAssetPath(Selection.activeObject)), "");
        }

        // 创建文件夹
        string newFolderPath = AssetDatabase.GenerateUniqueAssetPath(assetPath + "/" + folderName);
        AssetDatabase.CreateFolder(assetPath, folderName);
        AssetDatabase.Refresh();

        Debug.Log("Created folder at: " + newFolderPath);
    }
}
相关推荐
郝学胜-神的一滴16 小时前
基于OpenGL封装摄像机类:视图矩阵与透视矩阵的实现
c++·qt·线性代数·矩阵·游戏引擎·图形渲染
EQ-雪梨蛋花汤20 小时前
【Unity笔记】Unity 编辑器扩展:打造一个可切换 Config.assets 的顶部菜单插件
unity·编辑器·游戏引擎
SmalBox21 小时前
【URP】UnityHLSL顶点片元语义详解
unity·渲染
在路上看风景1 天前
9. Mono项目与Unity的关系
unity
在路上看风景1 天前
1.12 Memory Profiler Package - Summary
unity
SmalBox2 天前
【URP】Unity Shader Tags
unity·渲染
极客柒2 天前
Unity 塔防自用可视化路点寻路编辑器
unity·编辑器·游戏引擎
程序猿多布2 天前
Unity AssetBundle详解
unity·assetbundle
萘柰奈2 天前
Unity学习----【进阶】Addressables(二)--加载资源与打包及更新
学习·unity
lvcoc2 天前
unity 接入火山引擎API,包括即梦AI
windows·unity·ai·火山引擎