当前位置: 首页 > news >正文

【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之UGUIUGUIUnity的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插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 随着项目开发的体量增大&#xff0c;要导入大量的素材、UI、模…...

如何设计一个锂电池充电电路(TP4056)

这个是个单节18650锂电池的充电模块&#xff0c;这个是个18650的锂电池&#xff0c;18指的是它的直径是18mm&#xff0c;65指的是它的高度为65mm。这个18650电池的标称电压是3.7V&#xff0c;电池充满时电压为4.2V&#xff0c;一般电池电压越高也就代表它所剩的电量越大。这种锂…...

Spark了解

目录 1 概述 2 发展 3 Spark和Hadoop 4 Spark核心模块 1 概述 Apache Spark是一个快速、通用、可扩展的分布式计算系统&#xff0c;最初由加州大学伯克利分校的AMPLab开发。 Spark可以处理大规模数据处理任务&#xff0c;包括批处理、迭代式算法、交互式查询和流处理等。Spa…...

c++STL急急急

文章目录cSTL急急急vector头文件扩容过程用法&#xff1a;size/emptyclear迭代器begin/endfront/backpush_back() 和 pop_back()queue头文件用法循环队列 queue用法优先队列 priority_queue用法stack头文件deque头文件deque中控器&#xff1a;用法set头文件用法迭代器begin/end…...

【C++学习】模板进阶——非类型模板参数 | 模板的特化 | 分离编译

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《C学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 模板我们之前一直都在使用&#xff0c;尤其是在模拟STL容器的时候&#xff0c;可以说&#xff0c;模板…...

【C++】C++11新特性——可变参数模板|function|bind

文章目录一、可变参数模板1.1 可变参数的函数模板1.2 递归函数方式展开参数包1.3 逗号表达式展开参数包1.4 empalce相关接口函数二、包装器function2.1 function用法2.2 例题&#xff1a;逆波兰表达式求值2.3 验证三、绑定函数bind3.1 调整参数顺序3.2 固定绑定参数一、可变参数…...

ssm框架之spring:浅聊事务--JdbcTemplate

简介 JdbcTemplate 是 Spring 对 JDBC 的封装&#xff0c;目的是使JDBC更加易于使用&#xff0c;JdbcTemplate是Spring的一部分。JdbcTemplate 处理了资源的建立和释放&#xff0c;它帮助我们避免一些常见的错误&#xff0c;比如忘了总要关闭连接。他运行核心的JDBC工作流&…...

盘点Python那些简单实用的第三方库

文章目录前言关于本文使用 pip 命令下载第三方库1、phone 库&#xff08;获取手机号码信息&#xff09;2、geoip2 库&#xff08;IP 检测功能&#xff09;3、freegames 库&#xff08;免费小游戏&#xff09;4、jionlp 库&#xff08;解析地址信息&#xff09;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日凌晨&#xff0c;OpenAI震撼发布了多模态预训练大模型 GPT-4。 根据官网发布的通告可以知道&#xff0c;GPT-4 实现了以下几个方面的飞跃式提升&#xff1a;强大的AI创作识图能力&#xff1b;文字输入限制提升至 2.5 万字&#xff1b;回答准确性显著提高&#xff1b;能够…...

二叉搜索树:AVL平衡

文章目录一、 二叉搜索树1.1 概念1.2 操作1.3 代码实现二、二叉搜索树的应用K模型和KV模型三、二叉搜索树的性能分析四、AVL树4.1 AVL树的概念4.2 AVL树的实现原理4.3 旋转4.4 AVL树最终代码一、 二叉搜索树 1.1 概念 二叉搜索树&#xff08; Binary Search Tree&#xff0c;…...

数据结构和算法(1):数组

目录概述动态数组二维数组局部性原理越界检查概述 定义 在计算机科学中&#xff0c;数组是由一组元素&#xff08;值或变量&#xff09;组成的数据结构&#xff0c;每个元素有至少一个索引或键来标识 In computer science, an array is a data structure consisting of a col…...

python+django+vue全家桶鲜花商城售卖系统

重点&#xff1a; &#xff08;1&#xff09; 网上花店网站中各模块功能之间的的串联。 &#xff08;2&#xff09; 网上花店网站前台与后台的连接与同步。 &#xff08;3&#xff09; 鲜花信息管理模块中鲜花的发布、更新与删除。 &#xff08;4&#xff09; 订单…...

一文带你领略 WPA3-SAE 的 “安全感”

引入 WPA3-SAE也是针对四次握手的协议。 四次握手是 AP &#xff08;authenticator&#xff09; 和 &#xff08;supplicant&#xff09;进行四次信息交互&#xff0c;生成一个用于加密无线数据的秘钥。 这个过程发生在 WIFI 连接 的 过程。 为了更好的阐述 WPA3-SAE 的作用 …...

Python解题 - CSDN周赛第38期

又来拯救公主了。。。本期四道题还是都考过&#xff0c;而且后面两道问哥在以前写的题解里给出了详细的代码&#xff08;当然是python版&#xff09;&#xff0c;直接复制粘贴就可以过了——尽管这样显得有失公允&#xff0c;考虑到以后还会出现重复的考题&#xff0c;所以现在…...

Android绘制——自定义view之onLayout

简介 在自定义view的时候&#xff0c;其实很简单&#xff0c;只需要知道3步骤&#xff1a; 测量——onMeasure()&#xff1a;决定View的大小&#xff0c;关于此请阅读《Android自定义控件之onMeasure》布局——onLayout()&#xff1a;决定View在ViewGroup中的位置绘制——onD…...

用Qt画一个温度计

示例1 以下是用Qt绘制一个简单的温度计的示例代码&#xff1a; #include <QPainter> #include <QWidget> #include <QApplication> class Thermometer : public QWidget { public:Thermometer(QWidget *parent 0); protected:void paintEvent(QPaintEvent …...

Java设计模式 04-建造者模式

建造者模式 一、 盖房项目需求 1)需要建房子&#xff1a;这一过程为打桩、砌墙、封顶 2)房子有各种各样的&#xff0c;比如普通房&#xff0c;高楼&#xff0c;别墅&#xff0c;各种房子的过程虽然一样&#xff0c;但是要求不要相同的. 3)请编写程序&#xff0c;完成需求. …...

安语未公告于2023年3月20日发布

因一些特殊原因&#xff0c;凡事都是有开始&#xff0c;高潮和结束三大过程&#xff0c;做出以下决定&#xff1a; 所有对 安语未文章 为之热爱、鞭策、奉献&#xff0c;和支持过的开发者&#xff1a; 注&#xff1a;所有资源以及资料都会正常下载和查看 如需联系&#xff1…...

进销存是什么?如何选择进销存系统?

什么是进销存&#xff1f;进销存软件概念起源于上世纪80年代&#xff0c;由于电算化的普及&#xff0c;计算机管理的推广&#xff0c;不少企业对于仓库货品的进货&#xff0c;存货&#xff0c;出货管理&#xff0c;有了强烈的需求&#xff0c;进销存软件的发展从此开始。 进入…...

基于BP神经网络的图像跟踪,基于BP神经网络的细胞追踪识别

目录 摘要 BP神经网络的原理 BP神经网络的定义 BP神经网络的基本结构 BP神经网络的神经元 BP神经网络激活函数及公式 基于BP神经网络的细胞识别追踪 matab编程代码 效果 结果分析 展望 摘要 智能驾驶,智能出行是现代社会发展的趋势之一,其中,客量预测对智能出行至关重要,…...

Java面试总结篇

引用介绍 1.线程安全不安全的概念 ​ 线程安全: 指多个线程在执行同一段代码的时候采用加锁机制,使每次的执行结果和单线程执行的结果都是一样的,不存在执行程序时出现意外结果。 ​ 线程不安全: 是指不提供加锁机制保护,有可能出现多个线程先后更改数据造成所得到的数据是脏…...

100天精通Python(可视化篇)——第80天:matplotlib绘制不同种类炫酷柱状图代码实战(簇状、堆积、横向、百分比、3D柱状图)

文章目录0. 专栏导读1. 普通柱状图2. 簇状柱形图3. 堆积柱形图4. 横向柱状图5. 横向双向柱状图6. 百分比堆积柱形图7. 3D柱形图8. 3D堆积柱形图9. 3D百分比堆积柱形图0. 专栏导读 &#x1f3c6;&#x1f3c6;作者介绍&#xff1a;Python领域优质创作者、CSDN/华为云/阿里云/掘金…...

【Java】UDP网络编程

文章目录前言DatagramSocketDatagramPacket注意事项与区别代码演示前言 UDP&#xff08;user datagram protocol&#xff09;的中文叫用户数据报协议&#xff0c;属于传输层。 UDP是面向非连接的协议&#xff0c;它不与对方建立连接&#xff0c;而是直接把我要发的数据报发给对…...

Springboot源代码总结

前言 编写微服务,巩固知识 文章目录 前言springboot原理springboot启动流程SpringBoot自动配置底层源码解析自动配置到底配了什么?自动配置类条件注解Starter机制@ConditionalOnMissingBeanSpringBoot启动过程源码解析构造SpringApplication对象SpringBoot完整的配置优先级s…...

JVM监控搭建

文章目录JVM监控搭建整体架构JolokiaTelegrafInfluxdbGrafanaJVM监控搭建 整体架构 JVM 的各种内存信息&#xff0c;会通过 JMX 接口进行暴露。 Jolokia 组件负责把 JMX 信息翻译成容易读取的 HTTP 请求。Telegraf 组件作为一个通用的监控 agent&#xff0c;和 JVM 进程部署在…...

java中如何优化大量的if...else...

目录 策略模式&#xff08;Strategy Pattern&#xff09; 工厂模式&#xff08;Factory Pattern&#xff09; 映射表&#xff08;Map&#xff09; 数据驱动设计&#xff08;Data-Driven Design&#xff09; 策略模式&#xff08;Strategy Pattern&#xff09; 将每个条件分…...

24. linux系统基础

两个进程间想通讯&#xff0c;必须要通过内核&#xff0c;今天讲的信号其实本质也是讲进程间通讯的意思&#xff0c;那么你为什么可以在shell环境下&#xff0c;可以和一个进程发kill-9啊&#xff1f; shell是不是相当于一个进程&#xff1f;你自己运行的那个进程是不是也相当于…...

【C++】面试101,二叉搜索树的最近公共祖先,在二叉树中找到两个节点的最近公共祖先,序列化二叉树,重建二叉树,输出二叉树的右视图,组队竞赛,删除公共字符

目录 1.二叉搜索树的最近公共祖先 2.在二叉树中找到两个节点的最近公共祖先 3.序列化二叉树 4.重建二叉树 5.输出二叉树的右视图 6.组队竞赛 7.删除公共字符 1.二叉搜索树的最近公共祖先 这是一个简单的问题&#xff0c;因为是二叉搜索树&#xff08;有序&#xff09;&am…...

Java常见面试题及解答

Java常见面试题及解答1 面向对象的三个特征2 this&#xff0c;super关键字3 基础数据类型4 public、protected、default、private5 接口6 抽象类6.1 抽象类和接口的区别7 重载&#xff08;overload&#xff09;、重写&#xff08;override&#xff09;8 final、finalize、final…...