Unity3D游戏开发初学者必学入门知识-工程文件详解
1、特殊文件夹Unity工程根目录下,有三个特殊文件夹:Assets、Library、ProjectSettings
1-Asset
Unity 工程中所用到的任何类型资源都放在该文件夹中,是资源文件的根目录。很多API都是基于这个文件目录的,查找目录都需要带上Assets,比如 AssetDatabase。
2-Library
Unity 会把Asset下支持的资源导入成自身识别的格式,以及编译代码成为DLL文件,都放在Library文件夹中。
3-ProjectSettings
Unity 编辑器、工程文件的具体设置信息,全在这个文件夹下。
<hr/>2、Assets资源目录多种文件夹作用
《Editor》
放置在名为Editor的文件夹中的脚本被视为编辑器脚本而不是运行时脚本。这些脚本在开发期间向编辑器添加功能,并且在运行时在构建中不可用。
使用Editor脚本中的EditorGUIUtility.Load函数从Editor文件夹中的Resources文件夹加载Assets。这些资产只能通过编辑器脚本加载,并从构建中剥离。
注意: Unity不允许将从MonoBehaviour派生的组件分配给GameObjects
如果脚本位于Editor文件夹中。
可以Assets文件夹中的任何位置放置多个Editor文件夹。将编辑器脚本放在Editor文件夹或其中的子文件夹中。
该文件夹内的资源,打包工程时,不会被打包出去 <hr/>《Editor Default Resources》
编辑器脚本可以使用EditorGUIUtility.Load函数按需加载的资源文件。此函数在名为Editor Default Resources的文件夹中查找Asset文件。
将所需的Asset文件放在此Editor Default Resources文件夹或其中的子文件夹中。
如果您的资产文件位于子文件夹中,在传递给EditorGUIUtility.Load读取资源,函数的路径中包含子文件夹路径。
只能有一个Editor Default Resources文件夹,直接在Assets文件夹中。<hr/>《Gizmos》
Gizmos允许您将图形添加到场景视图
以帮助可视化不可见的设计细节。该Gizmos.DrawIcon功能放置在一个图标场景
充当特殊物体或位置的标记。
必须将用于在此图标中绘制此图标的图像文件放在名Gizmo的文件夹中
如果您的资源文件位于该文件夹的子文件夹中,在传递给Gizmos.DrawIcon函数的路径中包含子文件夹路径。
只能有一个Gizmos文件夹,它必须放在Assets文件夹中。/// <summary>
/// 编辑器模式工作,每帧都会运行
/// </summary>
void OnDrawGizmos()
{
Gizmos.DrawCube(transform.position, new Vector3(1, 1, 1)); //在Scene视窗下绘制一个Cube (位置,缩放比例)
Gizmos.DrawIcon(transform.position, &#34;Icon.png&#34;, true); //在Scene视窗下绘制一个图片(位置,名称.格式 ,是否允许扩展)
Debug.DrawLine(transform.position, new Vector3(0, 10, 0), Color.green); //划线(开始位置,方向,颜色)
}
<hr/>《Plugins》
扩展Unity的功能。插件是本机DLL,通常用C / C ++编写。他们可以访问第三方代码库,系统调用和其他Unity内置功能。始终将插件放在名为Plugins的文件夹中,以便Unity检测它们。
这文件夹一般会放置几种文件,第三方包、工具代码、软件开发工具包(SDK)
只能有一个Plugins文件夹,它必须放在Assets文件夹中。
<hr/>《Resources》
您可以从脚本中按需动态加载资源。您可以通过在Assets中创建Resources的文件夹,使用Resources.Load函数加载其中对应的资源。
可以在Assets文件夹中的任何位置放置多个Resources文件夹。<hr/>《Standard Assets》
导入标准资产包 (menu:Assets>Import Package)时,资产将放置在名为Standard Assets的文件夹中
只能有一个StandardAssets文件夹,它必须放在Assets文件夹中。<hr/>《StreamingAssets》
您可能希望资产以其原始格式作为单独的文件提供,尽管将资产直接合并到构建中更为常见。例如,您需要从文件系统访问视频文件,而不是将其用作MovieTexture在iOS上播放该视频。
将文件放在名为StreamingAssets的文件夹中,其中放的文件就可以不加改变地复制被打包出去,然后可以从特定文件夹中获取。
Unity提供的Application.streamingAssetsPath来动态获取路径
只能有一个StreamingAssets文件夹,它必须放在Assets文件夹中。<hr/>《Hidden Assets》
在导入过程中,Unity完全忽略Assets文件夹(或其中的子文件夹)中的以下文件和文件夹:
隐藏文件夹。
以&#39;开头的文件和文件夹。”。
以“” 结尾的文件和文件夹。
名为cvs的文件和文件夹。
扩展名为.tmp的文件。
这用于防止导入由操作系统或其他应用程序创建的特殊和临时文件。<hr/>3、各种文件类型种
Unity导入资源之后,除了要生成.meta文件,unity并不是直接使用这些资源的,而是在导入的过程中,生成了unity内部特定的格式(unity可识别)文件在游戏中使用,储存在Library目录下,而原始资源不变,仍然放在原来位置。当然,每次修改原始文件,unity都会重新导入一次,才能在unity中看到改过之后的样子。
正因为Library存放了导入资源的结果,所以每次删除Library或里面某个文件,都会让unity重新导入相应的资源(生成内部格式),但对工程没有影响。
《.meta文件》
Asset中的所有文件、文件夹,经过unity的导入过程后,都会为每个都生成一个.meta文件,这个文件是unity内部管理文件的重要内容,里面记录着资源的所有信息。
unity在第一次导入新资源/文件的时候,会生成一个Unique ID,用来标志这个资源相当于一个唯一编号,它就是unity内部用来区分资源的。Unique ID是全局唯一的,保存在.meta文件中。
在Unity中资源间的依赖关系引用都是用Unique ID来实现的,如果一个资源丢失了.meta文件,那依赖它的资源就找不到它了。会出现引用丢失的现象!
未完待续....请收藏!
将会讲解的更为全面! Plugins文件夹可以有多个
页:
[1]