Unity3DUnity3D中在创建完项目后自动创建文件夹列表

Posted 恬静的小魔龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3DUnity3D中在创建完项目后自动创建文件夹列表相关的知识,希望对你有一定的参考价值。

推荐阅读

大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新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和坑,让后来人可以有些参考。

Linux中在当前用户(root用户)用户主目录下创建一目录(new)?

参考技术A

1、首先查看当前的路径,输入pwd,回车。


2、如果当前目录不是root的用户目录,则需要进入root用户目录,输入:cd /root,回车,进入root用户目录。


3、新建目录new,输入命令:mkdir new,回车,即可成功创建new目录。


4、查看当前目录下的所有文件,输入命令:ll,回车。可以看到new目录已经存在。


扩展资料:

mkdir命令:

用来创建指定的名称的目录,要求创建用户在当前目录具有权限,并且指定的目录名不能是当前目录中已有的目录。

命令格式:

mkdir [选项] [目录]

命令参数:

-m --mode=模式,建立目录的时候同时设置目录的权限;

-p --parents 若所建立的上层目录目前尚未建立,则会一并建立上层目录;

-v --verbose 每次创建新目录都显示信息;

-h --help 帮助信息。

以上是关于Unity3DUnity3D中在创建完项目后自动创建文件夹列表的主要内容,如果未能解决你的问题,请参考以下文章

Linux中在当前用户(root用户)用户主目录下创建一目录(new)?

excel表格中在每列的最后一格没有数据的地方自动求和

Django 之 文件配置pycharm及django连接数据库创表及表的增删改查

个人项目-自动出题系统

项目助理后端开发 | 成都知道创宇信息技术有限公司

meterSphere使用文档