为什么突然会想起来写这篇文章呢,实在是因为在开发过程中遇到了一个很容易规避掉的问题却因为积累的少而被缠绕了近一个月.那就是因为Unity中特殊文件夹存放以及使用的问题.当时遇到这个问题的时候也花费了两三天在解决,无疾而终,今天突然在来公司的地铁上想到是不是因为文件夹的问题,来了之后就赶紧试一下,结果真的解决啦.所以立马要把这个问题给记录下来,同时也给其他可能会遇到同样问题的同学提供一些帮助.好啦,不多说啦,开始我们的介绍吧.

1.隐藏文件夹
    以 . 开头的文件夹会被Unity忽略.在这种文件夹中的资源是不会被导入的,且脚本不会被编译.也不会出现在Project视图中.这种文件夹我们可以在资源浏览器中找到这些文件.
    
2.Standard Assets
    在这个文件夹中的脚本最先被编译.一般是放一些Unity内置的资源.在这个文件夹中的脚本会被导出到Assembly-CSharp-firstpass/Assembly-UnityScript-firstpass/Assembly-Boo-firstpass项目中.依语言而定.在这个文件夹中的脚本比其他脚本都要先编译.将脚本放在这个文件夹里就可以用C#脚本访问其他语言的脚本

3.Pro Standard Assets
    和StandardAssets相同,只不过里面的文件是给Pro版本的Unity使用的,当然他的功能更为丰富,例如一些高级内置的shader文件,只有在Pro版才能起作用.
    
4.Editor
    以Editor命名的文件夹允许其中的脚本访问UnityEditor的API,如果脚本中使用了在UnityEditor命名空间中的类或方法,他必须被放在名为Editor的文件夹中,Editor文件夹的脚本不会再build时被包含.在项目中可以有多个Editor文件夹.需要注意的是如果在普通的文件夹下,Editor文件夹可以出于目录的任何层级.如果在特殊文件夹下,那Editor文件夹必须为特殊文件夹的直接子目录.
    
5.Editor Default Resources
    你可以把编辑器用到的一些资源放在这里,比如图片,文本文件等等.他和Editor文件夹一样都不会被打到最终发布报里,仅仅用于开发时使用.你可以直接通过EditorGUIUtility.Load去读取改文件夹下的资源,例如:
    TextAsset text = EditorGUIUtility.Load("Guide.txt") as TextAsset;

6.Plugins
    Plugins文件夹用来放native插件.他们会被自动包含进build中去,注意这个文件夹只能是Assets文件夹的直接子目录.例如:
    Windows:  dll文件;
    Mac OS X: bundle文件
    Linux下: .so文件
    和StandardAssets一样,这里的脚本会更早编译,并且允许他们呗之外的脚本访问.
    
    (1).Plugins/x86||x86_64(一般PC平台)
        如果为32bit或64bit平台创建游戏,那么这个文件下的nativeplugin文件会被自动的包含在游戏build中.如果这个文件夹不存在,则Unity会查找Plugins文件夹下的nativeplugins
        如果要创建universalbuild,建议你同时使用这两个文件夹.然后将32bit和64bit的nativeplugins放进相应的文件夹中
    (2).Plugins/Android
        在这个文件夹里放入Java.jar文件,用于Java语言的plugins.  
        .so文件也会被包含进来
        官方文档:https://docs.unity3d.com/Manual/PluginsForAndroid.html
    (3).Plugins/IOS
        在这个文件夹放入 .o、.m、.mm、.c、.cpp等文件,一般在IOS平台导出对应的文件
        官方文档:https://docs.unity3d.com/Manual/PluginsForIOS.html
        
7.Resources    
    Resources文件夹允许你在脚本中通过文件路径和名称来访问资源.放在这一文件夹的资源永远被包含今build中,即便它没有被调用.因为Unity无法判断脚本中有没有访问了其中的资源.项目中可以有多个Resources文件夹,因此不建议在多个文件夹中放同名的资源,一旦build游戏,Resources文件夹中的所有资源都被打包进游戏存放资源的archive中.这样在游戏的build中就不存在Resources文件夹啦.即便脚本中仍然使用了资源在项目中的路径
    官方文档:https://docs.unity3d.com/Manual/LoadingResourcesatRuntime.html
    注意:当资源作为脚本变量被访问时,这些资源在脚本被实例化后就被加载进内存.如果资源太大,你可能不希望他被这样加载.那么你可以将这些大资源放进Resources文件夹中.通过Resources.Load来加载.当不再使用这些资源啦,可以通过Destroy物体,在调用Resources.UnloadUnusedAssets来释放内存.
    特点:
    (1).文件夹内资源打包集成.asset文件里面.例如一些shader/material/prefab等资源文件;
    (2).里面的资源只能是只读,不能动态修改,一般动态的更细的资源不存放在这个文件夹内;
    (3).通过主线程加载;
    (4).Resources.Load();加载资源
        Resources.LoadAll();加载所有资源
        Resources.LoadAsync();异步加载资源
        
8.Gizmos
    Gizmos文件夹存放用Gizmos.DrawIcon方法使用的贴图、图标资源.放在Gizmos文件夹中的贴图资源可以直接通过使用名称使用,可以被Editor作为gizmo画在屏幕上.这里还是要说说OnDrawGizmos()方法.只要脚本继承了MonoBehaviour后,并且在编辑模式下就会每一帧都执行它,发布的游戏肯定就不会执行啦,他只能用于scene视图中绘制一些小物件.比如要做摄像机轨迹.那么肯定是要在Scene视图中做一个预览的线,那么用Gizmos.DrawLine和Gizmos.DrawFrustum就再好不过啦

9.WebPlayerTemplates
    用来替换webbuild的默认网页.这个文件夹中的脚本都不会被编译.这个文件夹必须作为Asstes文件夹的直接子目录
    
10.StreamingAssets
    这里的文件会被拷贝到build文件中,不会修改(移动和网页版不同,他们会被嵌入到最终的build文件中).他们的路径会因平台而有差异,但都可以通过Application.streamingAssetPath来访问.
    例如:有些游戏为了让所有的资源全部使用AssetBundle,会把一下初始的assetbundle放在StreamingAssets目录下,StreamingAsset目录下的资源都是不压缩的,而且他比较大,会占空间

Unity中专属文件夹介绍相关推荐

  1. unity中删除文件夹残留空文件夹问题

    在unity中删除文件夹如果只调用Directory.Delete函数,会发现虽然可以将文件夹下的文件都删除掉,但是还会残留一个空文件夹,因为unity.meata文件没有删除,所以需要将文件夹对应的 ...

  2. linux的重要文件,Linux中重要文件夹介绍

    Linux中重要的文件夹介绍 嵌入式助教苗沛2014 01 08 知识讲解 对于linux新手来说 最感到迷惑的问题之一就是文件都存在哪里呢 特别是对于那些从windows转过来的新手来说 linux ...

  3. Mac 系统中各个文件夹详细介绍

    Mac 系统中各个文件夹详细介绍 Mac OS X 系统以Unix作为核心,根目录为 / 打开Macintosh HD你会发现内中有四个文件夹分别为:应用程序(Applications).系统(Sys ...

  4. 开发板通过NTS挂载在PC机中的文件夹

    文章目录 1 安装NFS服务 2 开发板通过NFS挂在PC中的文件 2.1 设置开发板的IP地址网段和Ubuntu一致 2.2 开发板挂在PC中的文件 1 安装NFS服务 NFS 即网络文件系统,允许 ...

  5. 新建一个文件夹服务器,云服务器中新建文件夹命令

    云服务器中新建文件夹命令 内容精选 换一换 部署提供可视化.一键式部署服务,支持并行部署和流水线无缝集成,实现部署环境标准化和部署过程自动化.本节通过以下五步介绍如何使用部署服务将项目代码部署到云主机 ...

  6. 服务器新建文件命令,云服务器中新建文件夹命令

    云服务器中新建文件夹命令 内容精选 换一换 使用mount命令挂载文件系统到云服务器,云服务器提示access denied,挂载失败.原因1:文件系统已被删除.原因2:执行挂载命令的云服务器和被挂载 ...

  7. Unity 中操作数据文件

    文章目录 路径 路径定义 Resource Application.dataPath Application.streamingAssetPath Application.persistentData ...

  8. 前端框架Vue中各个文件夹的具体作用简介

    对于部分前端入门的同学而言,了解使用Vue框架创建项目中各个文件夹的作用是十分必要的.下面对各个文件夹的作用进行一个简单的介绍: node_modules 是用于存放项目所需要的依赖. public文 ...

  9. 【正点原子sys、delay、usart文件夹介绍】

    正点原子sys.delay.usart文件夹介绍 文章目录 正点原子sys.delay.usart文件夹介绍 一.sys文件夹函数 二.delay文件夹函数 2.1文件夹函数介绍 2.2 测试程序运行 ...

最新文章

  1. SAP Spartacus 404 Not found页面的显示机制 - canActivateNotFoundPage
  2. c语言linux下可用函数,[原创]linux下编码转换问题,C语言实现,使用iconv函数族68...
  3. mysql快速导入导出数据库_mysql快速导出与导入
  4. 微博转发的内容如何实现点击人名跳转到个人主页
  5. 倒立摆:Simulink建模
  6. Java 移位运算详解
  7. 如何在腾讯云服务器部署web项目
  8. matlab postion gcf
  9. 【 C++ OpenCV画旋转矩形 并返回四个顶点 】
  10. Mac将本地文件上传到服务器以及从服务器下载文件到本地
  11. FANUC机器人的主板结构和电缆连接示意图介绍
  12. 电商平台对接第三方快递鸟物流轨迹查询api接口申请对接全流程
  13. css 实现单行、多行文本显示
  14. Docker软件安装文档
  15. 谷歌浏览器与驱动下载,以及放置位置
  16. 优秀课程案例:使用Scratch制作坦克大战增强版!
  17. 如何使用 JS 破解轻量级滑块验证码
  18. css3实现磨砂效果,CSS3打造磨砂玻璃背景效果
  19. 如何将网页中的音频文件提取出来
  20. 因为计算机丢失D3DCOMPILER_47.dll 的解决方法

热门文章

  1. java开发微信公众号-订阅号-消息接收,及返回给用户信息
  2. 词云 开源_我如何创造“开源”一词
  3. Win10环境下配置VScode远程开发ssh-remote(免密登录)
  4. PDA手持扫描资产标签,盘点完成后将数据上传到PC端,固定资产系统查看盘点结果...
  5. 基于51单片机的水位水质检测系统方案原理PCB设计
  6. 亚太地区最佳十大软件公司排名公布
  7. 机器学习入门(1)---以手写数字识别为例
  8. 飘落的花朵css3,CSS3 绽放的小花朵
  9. Linux打开bashrc权限不够,肿么在终端里改变~/.bashrc 的权限
  10. bashrc文件的作用