【Unity3D小功能】Unity3D中在创建完项目后自动创建文件夹列表

这篇具有很好参考价值的文章主要介绍了【Unity3D小功能】Unity3D中在创建完项目后自动创建文件夹列表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

推荐阅读

  • CSDN主页
  • GitHub开源地址
  • Unity3D插件分享
  • 简书地址
  • 我的个人博客

大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

一、前言

随着项目开发的体量增大,要导入大量的素材、UI、模型之类的资源。

需要创建不同的文件夹进行整理,便于管理。

就写了一个小工具,在导入资源包的时候自动创建文件夹,这个包后期还可以增加常用的插件、代码的框架、数据类、单例类、工具类、已经实现的比较完善的功能等。

目前,先实现导入资源自动创建文件夹的功能吧。

二、实现自动创建文件夹

2-1、文件夹分类

首先,我们需要了解一下文件夹分类的规范。资源如何分类。

Unity的资源有很多,比如说动画、贴图、UI、音频、材质球、Shader、预制体、脚本等等。

那么,比较常用的分类方式就是:
【Unity3D小功能】Unity3D中在创建完项目后自动创建文件夹列表
还有一些特殊文件夹:

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

林新发大佬比较推荐的分类方式:

【Unity3D小功能】Unity3D中在创建完项目后自动创建文件夹列表
这篇文章,就根据一般的文件夹分类方式继续进行了。

2-2、新建CreateProjectFloder.cs类

Assets/Scripts/Editor文件夹下,新建脚本命名为CreateProjectFloder,双击打开脚本编辑代码:
【Unity3D小功能】Unity3D中在创建完项目后自动创建文件夹列表

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编译后,在窗口菜单上就会出现这个菜单栏:
【Unity3D小功能】Unity3D中在创建完项目后自动创建文件夹列表
但这个不是我们想要的效果,我们需要在导入这个资源包的时候自动创建文件夹。

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导出:
【Unity3D小功能】Unity3D中在创建完项目后自动创建文件夹列表
导出后,新建一个新项目,将这个包导入后,就会自动创建文件夹了:

【Unity3D小功能】Unity3D中在创建完项目后自动创建文件夹列表

三、后记

本篇文章实现了在创建项目后,导入资源包后,自动创建文件夹的功能。

整体来说比较简单(代码),流程的话对于初学者可能不太理解有什么用。

但是对于开发项目比较多的,可以有效的提高效率。

好啦

如果觉得本篇文章有用别忘了点个关注,关注不迷路,持续分享更多Unity干货文章。


你的点赞就是对博主的支持,有问题记得留言:

博主主页有联系方式。

博主还有跟多宝藏文章等待你的发掘哦:文章来源地址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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity3D:2D/3D 项目

    推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 无论是创建 2D 还是 3D 游戏,Unity 都很拿手。在 Unity 中创建新项目时,可以选择以 2D 或 3D 模式启动。您可能已经知道要构建什么,但有一些细微的要点可能会影响选择的模式。 选择是以 2D 还是 3D 模式启

    2024年02月07日
    浏览(56)
  • 【unity3D】退出游戏功能的实现

    💗 未来的游戏开发程序媛,现在的努力学习菜鸡 💦本专栏是我关于游戏开发的学习笔记 🈶本篇是unity的退出游戏功能的实现 新建一个button按钮,在Hierachy面板点击右键,然后UI—Button。 调节Button位置和Button下面Text文本的内容和大小。 新建一个脚本 新建一个空物体,然后

    2024年02月11日
    浏览(63)
  • 【Unity3D】如何用使用Unity实现退出游戏的功能

    1、使用Unity编译器时: 2、打包后: 很多时候,我们都知道Application.Quit()代码,但是我们在Unity编译器调试的时候发现即使挂上了这个代码的组件或物体都无法退出编译,因为该代码只在打包后可以实现退出功能。 所以我们可以把两个实现代码同时写入脚本,这样既可以在编

    2024年02月11日
    浏览(71)
  • Unity3D物体自动躲避障碍物

            2017.4.4f1         物体向前发射一个射线,检测到碰撞后,根据碰撞信息选择新的方向。最终结果如下。 通过发射虚拟胶囊体来检测碰撞api bool Physics.CapsuleCast (Vector3 point1, Vector3 point2, float radius, Vector3 direction, out RaycastHit hit, float maxDistance)  points参数如图所示,

    2023年04月24日
    浏览(64)
  • Unity3D 控制物体移动且自动旋转

    直接上代码(改脚本挂载到游戏物体上) 第三人称摄像机移动

    2024年02月15日
    浏览(79)
  • Unity3D实现登陆注册功能,实现本地存储读取

    untiy登录注册功能的实现,可以永久本地存储。C#源代码,也可以用相同的办法存储读取玩家的其他信息或自定义的游戏设置 实现了判断用户名是否存在,密码是否前后一致,密码是否正确等。 这是注册界面功能 以下是登录页功能      

    2024年02月13日
    浏览(43)
  • Unity3D操作数据之Excel表操作(创建、读取、写入、修改)

    叨唠两句: 首先使用Excel需要 导入插件 ,其次在 程序运行 期间不要打开对应的Excel文件 其次相对于一些程序使用Excel比使用数据库更具有优势 读取主要使用 Epplus 插件,后续会推出关于Epplus的 AP I讲解 读取Excel文件,需要导入一些dll文件,才能进行操作Excel数据: 如果打包

    2024年02月05日
    浏览(72)
  • Unity3D操作数据之Txt文档操作(创建、读取、写入、修改)

    Unity3D操作数据之Txt文档操作(创建、读取、写入、修改) 其实读取Txt文档非常简单、也不需要导入 插件 ,仅需引入相应的 命名空间 即可。 命名空间: using System.IO 要注意的一点是,文档格式设置为UTF-8,不然中文可能显示不太正确。 使用写入语句会自动创建对应的文档 使用

    2024年02月02日
    浏览(65)
  • Unity3D实现背包系统、物品的拖拽、拾取物品功能

    要在Unity中实现背包系统,你可以创建一个脚本来管理库存和物品。 首先,在Unity中创建一个名为“InventoryManager”的C#脚本。在这个脚本中,你可以创建一个将存储在背包中的物品列表。

    2024年02月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包