找回密码
 立即注册
查看: 326|回复: 1

Unity3D游戏开发初学者必学入门知识-工程文件详解

[复制链接]
发表于 2022-7-3 08:16 | 显示全部楼层 |阅读模式
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, "Icon.png", 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文件夹(或其中的子文件夹)中的以下文件和文件夹:
隐藏文件夹。
以'开头的文件和文件夹”。
以“  ” 结尾的文件和文件夹。
名为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文件,那依赖它的资源就找不到它了。会出现引用丢失的现象!



未完待续....请收藏!
将会讲解的更为全面!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2022-7-3 08:20 | 显示全部楼层
Plugins文件夹可以有多个
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-15 18:33 , Processed in 0.091473 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表