【只怕没有几个人能说清楚】系列之二:Unity中的特殊文件夹

参考:http://www.manew.com/thread-99292-1-1.html

1. 隐藏文件夹
     以.开头的文件夹会被忽略。在这种文件夹中的资源不会被导入,脚本不会被编译。也不会出现在Project视图中。这种文件我们可以在资源浏览器的时候,能找到这些文件。

2. Standard Assets
     在这个文件夹中的脚本最先被编译。一般是放一些Unity 内置的一些资源。
     这个文件夹中的脚本会被导出到Assembly-CSharp-firstpass, Assembly-UnityScript-firstpass 或 Assembly-Boo-firstpass项目中,依语言而定。
     官方文档:http://docs.unity3d.com/Documentation/Manual/ScriptCompileOrderFolders.html
     在这个文件夹中的脚本比其他脚本都要先编译。将脚本放在这个文件夹里,就可以用C#脚本来访问js脚本或其他语言的脚本。

3. Pro Standard Assets

     和Standard Assets相同,只不过里面的文件是给Pro版本的Unity使用的。当然它的功能更为的丰富,例如一些高级内置的shader文件,只有在Pro版才能起作用。

4. Editor

     以Editor命名的文件夹允许其中的脚本访问Unity Editor的API。如果脚本中使用了在UnityEditor命名空间中的类或方法,它必须被放在名为Editor的文件夹中。Editor文件夹中的脚本不会在build时被包含。
     在项目中可以有多个Editor文件夹。[注意:如果在普通的文件夹下,Editor文件夹可以处于目录的任何层级。如果在特殊文件夹下,那Editor文件夹必须是特殊文件夹的直接子目录。]

5. Editor Default Resources

    你可以把编辑器用到的一些资源放在这里,比如图片、文本文件、等等。它和Editor文件夹一样都不会被打到最终发布包里,仅仅用于开发时使用。你可以直接通过EditorGUIUtility.Load去读取该文件夹下的资源,例如:
  TextAsset text =  EditorGUIUtility.Load(“1.txt")as TextAsset;

6. Plugins

     Plugins文件夹用来放native插件。它们会被自动包含进build中去。注意这个文件夹只能是Assets文件夹的直接子目录。
     例如:Windows:dll文件;
     Mac OS X:bundle文件;
     Linux下:.so文件。
     和Standard Assets一样,这里的脚本会更早的编译,并且允许它们被之外的脚本访问。
     
      6.0. Plugins/x86 || x86_64   (一般PC平台)
         如果为32bit或64bit平台创建游戏,那么这个文件夹下的native plugin文件会被自动的包含在游戏build中。如果这个文件夹不存在,则Unity会查找Plugins文件夹下的native pluglins。
           如果要创建universal build,建议你同时使用这两个文件夹。然后将32bit和64bit的native plugins放进相应的文件夹中。

 6.1. Plugins/android
      在这个文件夹里放入Java.jar文件。用于java语言的plugins。.so文件也会被包含进来。
      官方文档:http://docs.unity3d.com/Documentation/Manual/PluginsFor.html

      6.2. Plugins/iOS
       在这个文件夹放入.o、.m 、 .mm 、.c 、.cpp等文件,一般在IOS 平台导出对应的文件。
      官方文档:http://docs.unity3d.com/Documentation/Manual/PluginsForIOS.html

7. Resources
     Resources文件夹允许你在脚本中通过文件路径和名称来访问资源。放在这一文件夹的资源永远被包含进build中,即使它没有被使用。因为Unity无法判断脚本有没有访问了其中的资源。项目中可以有多个Resources文件夹,因此不建议在多个文件夹中放同名的资源。一旦build游戏,Resources文件夹中的所有资源被打包进游戏存放资源的archive中。这样在游戏的build中就不存在Resources文件夹了。即使脚本中仍然使用了资源在项目中的路径。
    官方文档:http://docs.unity3d.com/Documentation/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
    用来替换web build的默认网页。这个文件夹中的脚本都不会被编译。这个文件夹必须作为Assets文件夹的直接子目录。

10. StreamingAssets
    这里的文件会被拷贝到build文件夹中,不会修改(移动和网页版不同,他们会被嵌入到最终build文件中)。它们的路径会因平台而有差异,但都可以通过Application.streamingAssetsPath来访问。
   例如:有些游戏为了让所有的资源全部使用assetbundle,会把一些初始的assetbundle放在StreamingAssets目录下,StreamingAssets目录下的资源都是不压缩的,而且它比较大会占空间 <ignore_js_op>

时间: 2024-10-24 08:58:43

【只怕没有几个人能说清楚】系列之二:Unity中的特殊文件夹的相关文章

批处理系列(3) - 通过文本内容行创建文件夹

结合本系列文章第一篇,看本文. 要执行,准备一个文本文件,里面是一行行即将要创建为目录的目录名:准备一个空目录: 保存本代码到通过文本内容行创建文件夹.bat,执行按提示拖相关文件和目录进去即可. @echo off @REM @Author: [email protected] title 通过文本创建目录 by:小可([email protected]) echo 通过文本创建目录 echo ----------------------------- set /p importTxt=拖文本

Android开发系列(十七):读取assets文件夹下的数据库文件

在做Android应用的时候,不可避免要用到数据库.可是当我们把应用的apk部署到真机上的时候,已经创建好的数据库及其里边的数据是不能随着apk一起安装到真机上的. (PS:这篇博客攻克了我前面博客中写的一个小游戏的一个问题.另外也能够读取Raw文件夹下的数据库文件) 这就造成了一个问题.这个问题事实上非常好解决,解决方法例如以下: 我们首先把有数据的数据库文件放在assets资源文件夹下边,然后在apk应用启动的时候,把assets文件夹下的数据库文件的数据写入到真机的内存中去. 下边開始我们

katalon系列十二:自动化上传文件、下载文件

一.下载文件1.下载文件时,需要先设置好Chrome/Firefox下载路径.不弹出下载框等,大家先学习下在selenium下如何设置:https://www.cnblogs.com/fnng/p/7700620.html 在Katalon中设置Chrome的DesiredCapabilities如图: 点击菜单Edit-Desired Capabilities-Web UI-Chrome,点击Add,名称输入prefs,类型选Dictionary,Value如下:profile.default

学习OpenCV研究报告指出系列(二)源代码被编译并配有实例project

下载并安装CMake3.0.1 要自己编译OpenCV2.4.9的源代码.首先.必须下载编译工具,使用的比較多的编译工具是CMake. 以下摘录一段关于CMake的介绍: CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描写叙述全部平台的安装(编译过程).他可以输出各种各样的makefile或者project文件,能測试编译器所支持的C 特性,类似UNIX下的automake.仅仅是 CMake 的组态档取名为 CmakeLists.txt.Cmake 并不直接建构出终于的软件,而是

[.NET领域驱动设计实战系列]专题二:结合领域驱动设计的面向服务架构来搭建网上书店

一.前言 在前面专题一中,我已经介绍了我写这系列文章的初衷了.由于dax.net中的DDD框架和Byteart Retail案例并没有对其形成过程做一步步分析,而是把整个DDD的实现案例展现给我们,这对于一些刚刚接触领域驱动设计的朋友可能会非常迷茫,从而觉得领域驱动设计很难,很复杂,因为学习中要消化一个整个案例的知识,这样未免很多人消化不了就打退堂鼓,就不继续研究下去了,所以这样也不利于DDD的推广.然而本系列可以说是刚接触领域驱动设计朋友的福音,本系列将结合领域驱动设计的思想来一步步构建一个网

Powershell管理系列(二十六)PowerShell操作之批量导出&导入邮箱

-----提供AD\Exchange\Lync\Sharepoint\CRM\SC\O365等微软产品实施及外包,QQ:185426445.电话18666943750 项目中有时候做跨林邮箱迁移的时候,条件不成熟,比如安全考虑或者其他考虑,不能做双林信任,这样就提出了一个问题,历史邮件需要使用的话怎么办,一个简单高效的解决办法就是从源森林批量导出邮件为.pst文件,在批量导入到目的域森林,具体操作如下: 1.赋予管理账号邮件导入导出权限,命令如下: cls whoami New-Manageme

算法系列之二十三:离散傅立叶变换之音频播放与频谱显示

算法系列之二十三:离散傅立叶变换之音频播放与频谱显示 算法系列之二十三离散傅立叶变换之音频播放与频谱显示 导语 什么是频谱 1 频谱的原理 2 频谱的选择 3 频谱的计算 显示动态频谱 1 实现方法 2 杂项说明 结果展示 导语 频谱和均衡器,几乎是媒体播放程序的必备物件,没有这两个功能的媒体播放程序会被认为不够专业,现在主流的播放器都具备这两个功能,foobar 2000的十八段均衡器就曾经让很多人着迷.在上一篇对离散傅立叶变换介绍的基础上,本篇就进一步介绍一下频谱是怎么回事儿,下一篇继续介绍

hbase源码系列(二)HTable 如何访问客户端

hbase的源码终于搞一个段落了,在接下来的一个月,着重于把看过的源码提炼一下,对一些有意思的主题进行分享一下.继上一篇讲了负载均衡之后,这一篇我们从client开始讲吧,从client到master再到region server,按照这个顺序来开展,网友也可以对自己感兴趣的部分给我留言或者直接联系我的QQ. 现在我们讲一下HTable吧,为什么讲HTable,因为这是我们最常见的一个类,这是我们对hbase中数据的操作的入口. 1.Put操作 下面是一个很简单往hbase插入一条记录的例子.

高效系列:bat生成文件夹目录 & 折腾exe及icon配合

有时候我们需要新生成一套文件夹目录,就比如项目管理目录 大概的清单如下: ├─01.项目管理 │  ├─01.立项文档 │  ├─02.策划文档 │  ├─03.管理监控 │  ├─04.配置管理 │  ├─05.质量保证 │  ├─06.验收文档 │  ├─07.项目报告 │  ├─08.评审报告 │  ├─09.变更管理 │  ├─10.结项文档 │  ├─11.会议记录 │  └─12.其它文档 ├─02.需求文档 │  ├─01.用户需求说明书 │  └─02.需求规格说明书 ├─03.