【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中在创建完项目后自动创建文件夹列表相关推荐
- IDEA中创建maven项目后解决main文件夹下目录不全的问题
IDEA中创建maven项目后解决main文件夹下目录不全的问题 参考文章: (1)IDEA中创建maven项目后解决main文件夹下目录不全的问题 (2)https://www.cnblogs.co ...
- android自动创建桌面,Android应用启动后自动创建桌面快捷方式的实现方法
Android的开发其实是比较灵活的,其实在安装了Android应用程序之后,会在桌面上自动创建快捷方式,接下来爱站技术频道小编将会介绍Android应用启动后自动创建桌面快捷方式的实现方法给大家,有 ...
- 电脑桌面点任何文件都打开计算机,小编教你电脑开机自动打开文件夹怎么解决...
相信大部分的朋友都遇到过这样的一个问题,那就是电脑开机自动打开文件,遇到这个问题该怎么处理呢?估计大部分的朋友都不知道该如何处理,针对这一问题,这里小编就给大家详细的讲述一下怎么解决电脑开机自动打开文 ...
- Unity3D小功能 小技巧 小教程 小原理(持续更新...)
Unity3D小功能 小技巧 小教程 小原理(持续更新...) 1.Unity的.NET版本是2.0 按道理来说,C#能用的功能Unity也能用,但是Unity的.NET却不是最新版 要是用一些别的D ...
- html视频播放完自动跳转,在html5视频中跳转到currentTime后自动播放
我试图创建一个视频,该视频在点击按钮后跳转到视频后从视频中的某个点自动播放.我拥有它,以便视频跳到现场,但我无法弄清楚如何从那里自动播放.我是新来的JavaScript,我想可能有一个简单的解决方案, ...
- 【C++】Vscode 中使用CMakeLists(推荐)构建C++项目:项目结构、各个文件夹的作用、从编码到debug
目录 一.vscode配置 二.项目结构 三.编译 3.1 工作原理 3.2 在vscode中如何使用cmake进行编译 三.调试 Vscode建立C++项目结构及各个文件夹的作用(不使用CMakeL ...
- 关于Eclipse中复制粘贴一个项目后的操作
今天在做一个小Demo,内容和之前的项目有些类似就直接复制过来了,项目名修改了,web.xml的项目名也修改了,可是部署到Tomcat之后,以这个新项目名进行访问就会出现404的错误,只可以使用复制之 ...
- 怎样清除手机中的html文件夹,怎么彻底清除手机APP卸载后的残留文件夹 能删与不能删文件名...
手机里的文件和手机下载了app之后,即使卸载,也很容易有垃圾残留,而且占用的空间还挺多,但是根本不知道哪些是垃圾,要怎么清除这些垃圾? 一般清理垃圾软件,如360,腾讯管家等可以清除手机缓存, ...
- spark java pom.xml_使用maven方式创建spark项目(配置pom.xml文件)
创建maven项目后,在pom.xml文件中添加如下配置项: 1.8 1.8 2.10.5 1.6.2 2.6.4 UTF-8 org.apache.spark spark-core_2.11 ${s ...
最新文章
- Go 学习笔记(35)— Go 接口 interface (接口声明、接口初始化、接口方法调用、接口运算、类型断言、类型查询、空接口)
- 我的世界java版双海底神殿种子_我的世界海底神殿种子2021
- 庆祝杭州移动电视诞生一周年
- Spring Cloud的架构
- ssl1335-最佳派对【二分图,最大匹配,图论】
- 使用Mozilla Persona认证用户的指南
- [渝粤教育] 西南财经大学 货币金融学 参考 资料
- 第2章[2.5] Ext JS组件、容器与布局
- 绘制流程图的基本规则
- 我自己在学arm7——ourdev
- C++ 程序越过windows Defender检测
- 正则表达式课后练习题
- 【WPS表格】数据透视表刷新后,保持格式不变
- 联想x3650服务器安装硬盘,IBM x3650 M2服务器系统安装攻略(组图)
- 武田公布2019财年第一季度强劲业绩并上调全年指引
- 教你30元自制考勤打卡系统!
- 成长-技术人员的成长
- Array数组方法-mdn
- pandas中DataFrame的.ix不能用怎么办
- 【踩坑实录】hive删除字段报错
热门文章
- 创业者不能盲目的跟风,不然结局很凄凉
- BigDecimal 往左移动两位小数_妻子的浪漫旅行:对比之下,这两位妻子拍照超“甜蜜”,亲疏立见...
- 【SpringBoot】十八、拦截器 interceptor
- 【JS正则表达式验证】
- STM32内部ADC测量时产生噪声的原因与消除的方法
- PGSQL 模糊查询不区分大小写
- 苹果系统下载了python软件怎么卸载_mac怎么卸载pycharm
- 编写代码实现简单的扫雷游戏
- 中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”:一只公鸡值5钱,一只母鸡值3钱,三只小鸡值1钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只?
- python 替换重复字符_python - 在Pandas中,如何将重复值替换为多个唯一字符串?_pandas_酷徒编程知识库...