推荐阅读
- 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干货文章。
你的点赞就是对博主的支持,有问题记得留言:
博主主页有联系方式。文章来源:https://www.toymoban.com/news/detail-438147.html
博主还有跟多宝藏文章等待你的发掘哦:文章来源地址https://www.toymoban.com/news/detail-438147.html
专栏 | 方向 | 简介 |
---|---|---|
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中在创建完项目后自动创建文件夹列表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!