【Unity3D】Unity3D中在创建完项目后自动创建文件夹列表
推荐阅读
- CSDN主页
- GitHub开源地址
- Unity3D插件分享
- 简书地址
- 我的个人博客
大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。
一、前言
随着项目开发的体量增大,要导入大量的素材、UI、模型之类的资源。
需要创建不同的文件夹进行整理,便于管理。
就写了一个小工具,在导入资源包的时候自动创建文件夹,这个包后期还可以增加常用的插件、代码的框架、数据类、单例类、工具类、已经实现的比较完善的功能等。
目前,先实现导入资源自动创建文件夹的功能吧。
二、实现自动创建文件夹
2-1、文件夹分类
首先,我们需要了解一下文件夹分类的规范。资源如何分类。
Unity的资源有很多,比如说动画、贴图、UI、音频、材质球、Shader、预制体、脚本等等。
那么,比较常用的分类方式就是:

还有一些特殊文件夹:
| 文件夹名 | 详解 |
|---|---|
| Resources | 用于存储需要在运行时动态加载的资源,例如音效、纹理、预制件等。这些资源可以通过Unity的Resources API在运行时加载。(进底包的资源才可以直接使用Resources API) |
| StreamingAssets | 放打完的AB包,发包的时候这里的会进apk包。该文件夹用于存储需要和应用程序一起打包的数据,如视频文件和音乐文件。 |
| Plugins | 第三方库,只依赖自己。必须位于 Assets 文件夹的外部。文件夹是另一个特殊文件夹,用于存储第三方插件或库。Plugins 文件夹通常包含原生代码或外部库,例如 C++ 代码、动态链接库或共享对象文件等,这些文件可被 Unity 编辑器或运行时程序调用。 |
林新发大佬比较推荐的分类方式:

这篇文章,就根据一般的文件夹分类方式继续进行了。
2-2、新建CreateProjectFloder.cs类
在Assets/Scripts/Editor文件夹下,新建脚本命名为CreateProjectFloder,双击打开脚本编辑代码:

using UnityEditor;
using UnityEngine;
using System.IO;public class CreateProjectFloder
{/// <summary>/// 根目录文件夹名(多人开发时,区分各自的文件夹,为空的时候在根目录创建)/// </summary>private static string _rootFolderName = "";/// <summary>/// 公有文件夹/// </summary>private static string _singleFolderArray = "Resources,StreamingAssets,Plugins";/// <summary>/// 多人开发各自文件夹/// </summary>private static string _folderArray = "Animation,Audio,Scenes,Texture,Materials,Shaders,Prefabs,Scripts";/// <summary>/// Asset目录路径/// </summary>private static string _assetPath = Application.dataPath;/// <summary>/// 在Project创建指定文件夹/// </summary>[MenuItem("Tools/CreateProjectFolder")]public static void CreatAllProjectFolder(){string[] _strArr = _folderArray.Split(',');foreach (string str in _strArr){string _folderPath = _assetPath + "/" + _rootFolderName + "/" + str;if (!Directory.Exists(_folderPath))Directory.CreateDirectory(_folderPath);}string[] _singleArr = _singleFolderArray.Split(',');foreach (string str in _singleArr){string _folderPath = _assetPath + "/" + str;if (!Directory.Exists(_folderPath))Directory.CreateDirectory(_folderPath);}//刷新目录AssetDatabase.Refresh();}
}
代码没有什么要说的,就是简单的创建文件夹,刷新目录。
Unity编译后,在窗口菜单上就会出现这个菜单栏:

但这个不是我们想要的效果,我们需要在导入这个资源包的时候自动创建文件夹。
2-3、自动创建文件阿基
导入资源包,这里选择一般的unitypackage包拖入到Unity中的方式。
后面还可以通过Unity的Package Manager管理器或者配置manifest.json文件来导入资源包,这个以后再说。
接着,就是在Assets/Scripts/Editor文件夹下,新建脚本命名为AutoCreateFloder,双击打开脚本编辑代码:
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;/// <summary>
/// 自动导入资源创建文件夹
/// </summary>
public class AutoCreateFloder : AssetPostprocessor
{static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths){foreach (string s in importedAssets){if (s.Equals("Assets/Scripts/Editor/AutoCreateFloder.cs")){CreateProjectFloder.CreatAllProjectFolder();return;}}}
}
选中这个脚本选择Export Paclage导出:

导出后,新建一个新项目,将这个包导入后,就会自动创建文件夹了:

三、后记
本篇文章实现了在创建项目后,导入资源包后,自动创建文件夹的功能。
整体来说比较简单(代码),流程的话对于初学者可能不太理解有什么用。
但是对于开发项目比较多的,可以有效的提高效率。
好啦
如果觉得本篇文章有用别忘了点个关注,关注不迷路,持续分享更多Unity干货文章。
你的点赞就是对博主的支持,有问题记得留言:
博主主页有联系方式。
博主还有跟多宝藏文章等待你的发掘哦:
| 专栏 | 方向 | 简介 |
|---|---|---|
| Unity3D开发小游戏 | 小游戏开发教程 | 分享一些使用Unity3D引擎开发的小游戏,分享一些制作小游戏的教程。 |
| Unity3D从入门到进阶 | 入门 | 从自学Unity中获取灵感,总结从零开始学习Unity的路线,有C#和Unity的知识。 |
| Unity3D之UGUI | UGUI | Unity的UI系统UGUI全解析,从UGUI的基础控件开始讲起,然后将UGUI的原理,UGUI的使用全面教学。 |
| Unity3D之读取数据 | 文件读取 | 使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。 |
| Unity3D之数据集合 | 数据集合 | 数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。 |
| Unity3D之VR/AR(虚拟仿真)开发 | 虚拟仿真 | 总结博主工作常见的虚拟仿真需求进行案例讲解。 |
| Unity3D之插件 | 插件 | 主要分享在Unity开发中用到的一些插件使用方法,插件介绍等 |
| Unity3D之日常开发 | 日常记录 | 主要是博主日常开发中用到的,用到的方法技巧,开发思路,代码分享等 |
| Unity3D之日常BUG | 日常记录 | 记录在使用Unity3D编辑器开发项目过程中,遇到的BUG和坑,让后来人可以有些参考。 |
相关文章:
【Unity3D】Unity3D中在创建完项目后自动创建文件夹列表
推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 随着项目开发的体量增大,要导入大量的素材、UI、模…...
如何设计一个锂电池充电电路(TP4056)
这个是个单节18650锂电池的充电模块,这个是个18650的锂电池,18指的是它的直径是18mm,65指的是它的高度为65mm。这个18650电池的标称电压是3.7V,电池充满时电压为4.2V,一般电池电压越高也就代表它所剩的电量越大。这种锂…...
Spark了解
目录 1 概述 2 发展 3 Spark和Hadoop 4 Spark核心模块 1 概述 Apache Spark是一个快速、通用、可扩展的分布式计算系统,最初由加州大学伯克利分校的AMPLab开发。 Spark可以处理大规模数据处理任务,包括批处理、迭代式算法、交互式查询和流处理等。Spa…...
c++STL急急急
文章目录cSTL急急急vector头文件扩容过程用法:size/emptyclear迭代器begin/endfront/backpush_back() 和 pop_back()queue头文件用法循环队列 queue用法优先队列 priority_queue用法stack头文件deque头文件deque中控器:用法set头文件用法迭代器begin/end…...
【C++学习】模板进阶——非类型模板参数 | 模板的特化 | 分离编译
🐱作者:一只大喵咪1201 🐱专栏:《C学习》 🔥格言:你只管努力,剩下的交给时间! 模板我们之前一直都在使用,尤其是在模拟STL容器的时候,可以说,模板…...
【C++】C++11新特性——可变参数模板|function|bind
文章目录一、可变参数模板1.1 可变参数的函数模板1.2 递归函数方式展开参数包1.3 逗号表达式展开参数包1.4 empalce相关接口函数二、包装器function2.1 function用法2.2 例题:逆波兰表达式求值2.3 验证三、绑定函数bind3.1 调整参数顺序3.2 固定绑定参数一、可变参数…...
ssm框架之spring:浅聊事务--JdbcTemplate
简介 JdbcTemplate 是 Spring 对 JDBC 的封装,目的是使JDBC更加易于使用,JdbcTemplate是Spring的一部分。JdbcTemplate 处理了资源的建立和释放,它帮助我们避免一些常见的错误,比如忘了总要关闭连接。他运行核心的JDBC工作流&…...
盘点Python那些简单实用的第三方库
文章目录前言关于本文使用 pip 命令下载第三方库1、phone 库(获取手机号码信息)2、geoip2 库(IP 检测功能)3、freegames 库(免费小游戏)4、jionlp 库(解析地址信息)5、pyqrcode 库&a…...
leetCode热题21-26 解题代码,调试代码和思路
前言 本文属于特定的六道题目题解和调试代码。 1 ✔ [160]相交链表 Easy 2023-03-17 171 2 ✔ [54]螺旋矩阵 Medium 2023-03-17 169 3 ✔ [23]合并K个排序链表 Hard 2022-12-08 158 4 ✔ [92]反转链表 II Medium 2023-03-01 155 5 ✔ [415]字符串相加 Easy 2023-03-14 150 6 …...
ChatGPT推出第四代GPT-4!不仅能聊天,还可以图片创作!
3月15日凌晨,OpenAI震撼发布了多模态预训练大模型 GPT-4。 根据官网发布的通告可以知道,GPT-4 实现了以下几个方面的飞跃式提升:强大的AI创作识图能力;文字输入限制提升至 2.5 万字;回答准确性显著提高;能够…...
二叉搜索树:AVL平衡
文章目录一、 二叉搜索树1.1 概念1.2 操作1.3 代码实现二、二叉搜索树的应用K模型和KV模型三、二叉搜索树的性能分析四、AVL树4.1 AVL树的概念4.2 AVL树的实现原理4.3 旋转4.4 AVL树最终代码一、 二叉搜索树 1.1 概念 二叉搜索树( Binary Search Tree,…...
数据结构和算法(1):数组
目录概述动态数组二维数组局部性原理越界检查概述 定义 在计算机科学中,数组是由一组元素(值或变量)组成的数据结构,每个元素有至少一个索引或键来标识 In computer science, an array is a data structure consisting of a col…...
python+django+vue全家桶鲜花商城售卖系统
重点: (1) 网上花店网站中各模块功能之间的的串联。 (2) 网上花店网站前台与后台的连接与同步。 (3) 鲜花信息管理模块中鲜花的发布、更新与删除。 (4) 订单…...
一文带你领略 WPA3-SAE 的 “安全感”
引入 WPA3-SAE也是针对四次握手的协议。 四次握手是 AP (authenticator) 和 (supplicant)进行四次信息交互,生成一个用于加密无线数据的秘钥。 这个过程发生在 WIFI 连接 的 过程。 为了更好的阐述 WPA3-SAE 的作用 …...
Python解题 - CSDN周赛第38期
又来拯救公主了。。。本期四道题还是都考过,而且后面两道问哥在以前写的题解里给出了详细的代码(当然是python版),直接复制粘贴就可以过了——尽管这样显得有失公允,考虑到以后还会出现重复的考题,所以现在…...
Android绘制——自定义view之onLayout
简介 在自定义view的时候,其实很简单,只需要知道3步骤: 测量——onMeasure():决定View的大小,关于此请阅读《Android自定义控件之onMeasure》布局——onLayout():决定View在ViewGroup中的位置绘制——onD…...
用Qt画一个温度计
示例1 以下是用Qt绘制一个简单的温度计的示例代码: #include <QPainter> #include <QWidget> #include <QApplication> class Thermometer : public QWidget { public:Thermometer(QWidget *parent 0); protected:void paintEvent(QPaintEvent …...
Java设计模式 04-建造者模式
建造者模式 一、 盖房项目需求 1)需要建房子:这一过程为打桩、砌墙、封顶 2)房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的. 3)请编写程序,完成需求. …...
安语未公告于2023年3月20日发布
因一些特殊原因,凡事都是有开始,高潮和结束三大过程,做出以下决定: 所有对 安语未文章 为之热爱、鞭策、奉献,和支持过的开发者: 注:所有资源以及资料都会正常下载和查看 如需联系࿱…...
进销存是什么?如何选择进销存系统?
什么是进销存?进销存软件概念起源于上世纪80年代,由于电算化的普及,计算机管理的推广,不少企业对于仓库货品的进货,存货,出货管理,有了强烈的需求,进销存软件的发展从此开始。 进入…...
别等宕机才后悔!UPS蓄电池定期巡检,这4点才是核心!
|机房里设备林立,大多数人把目光聚焦在服务器、精密空调上。但其实,潜伏在机房角落的“隐形杀手”,往往是看起来默默无闻的UPS蓄电池。今天我们不谈复杂的技术参数,只用大白话讲清楚:为什么蓄电池必须定期巡…...
html-to-docx:让HTML转Word不再头疼的开源解决方案
html-to-docx:让HTML转Word不再头疼的开源解决方案 【免费下载链接】html-to-docx HTML to DOCX converter 项目地址: https://gitcode.com/gh_mirrors/ht/html-to-docx 在数字化办公的浪潮中,文档格式转换已成为企业和个人的日常需求。据行业调研…...
三菱PLC与组态王四层电梯控制系统:详细图纸与IO分配解释
三菱PLC和组态王4层电梯四层电梯控制系统 我们主要的后发送的产品有,带解释的梯形图接线图原理图图纸,io分配,组态画面实验室四层电梯模型卡成狗的时候,真的恨自己当初梯形图只会写互锁单按钮那种幼儿园题。后来拆前辈的旧板子加…...
从Simulink模型到神经网络:一个完整的数据驱动建模与验证实践
1. 为什么需要从Simulink模型转向神经网络? 在控制系统工程领域,Simulink模型一直是建模和仿真的黄金标准。但最近几年,越来越多的工程师开始尝试用神经网络来替代传统模型。这背后有几个关键原因: 首先,传统物理模型在…...
基于S7-300与组态王的智能药片装瓶机控制系统优化设计
1. 智能药片装瓶机控制系统的核心价值 在制药生产线上,药片装瓶环节看似简单却暗藏玄机。传统的人工装瓶方式不仅效率低下,还容易出现计数错误、交叉污染等问题。我曾在某药企亲眼见过工人因疲劳导致装瓶数量出错,最终整批药品不得不报废的案…...
效率飙升,跳过proteus安装配置,用快马ai秒建仿真项目
最近在做一个温度监测系统的项目,需要验证电路设计的可行性。按照传统方式,我得先下载安装Proteus软件,配置各种库文件,光是环境准备就得折腾半天。不过这次尝试了用InsCode(快马)平台的AI功能,整个过程变得异常高效。…...
大麦抢票自动化工具:技术赋能下的抢票效率革命
大麦抢票自动化工具:技术赋能下的抢票效率革命 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 在热门演出门票抢购场景中,用户常常面临手动操作反应迟缓、重复劳动效率低下…...
AI辅助开发进阶:让快马智能助手帮你设计与优化专业图像处理库
今天想和大家分享一个很实用的开发经验——如何用AI辅助工具来优化和扩展专业图像处理库的开发。最近我在做一个Python图像处理工具库,正好用InsCode(快马)平台的AI功能做了些尝试,效果出乎意料的好。 先说说背景。这个工具库最初只有基础的图片缩放和滤…...
WarcraftHelper:魔兽争霸III现代化增强工具全面指南
WarcraftHelper:魔兽争霸III现代化增强工具全面指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 如何让经典游戏适配现代硬件环境&…...
Vue3+Element Plus+Sortable.js:构建可定制化表格拖拽配置中心
1. 为什么需要表格拖拽配置中心 后台管理系统中最常见的需求之一就是表格展示数据。但不同用户对表格的展示需求往往不同:产品经理可能更关注日期和状态字段,运营人员则更看重用户行为和转化数据。传统解决方案是开发多个固定表格页面,但这会…...
