Unity中的特殊文件夹

Unity中的特殊文件夹

  • 简介

今天想总结一下unity中的特殊文件夹,我之所以写这个文章是最近我发现在我带一些初学者做项目时他们对一些基本的文件夹的功能很模糊,如Resources文件夹的基本功能及使用。

  • 本地存储

1)Resources文件夹

在Resources文件夹中可从脚本中按需加载资源,而不必在场景中创建资源实例以用于游戏。为此,应将资源放在一个名为 Resources 的文件夹中。通过使用 Resources.Load 函数即可加载这些资源。

可在 Assets 文件夹中的任何位置添加多个 Resources 文件夹。将所需的资源文件放在 Resources 文件夹内或其中的子文件夹内。如果资源文件位于子文件夹中,请始终在传递给 Resources.Load 函数的路径中包含子文件夹路径。

打包程序的时候会将Resource目录下的全部文件都加密压缩打进包内,Resources 文件夹的使用不当会使项目构建出现膨胀,导致内存消耗过高,并显著增加应用程序启动时间。

2)StreamingAssets

这是一个只读、不可写的目录; 该文件夹下的资源会保持原始格式(比如图片不会被引擎进行纹理压缩);dll文件或者脚本放在该文件夹下也不会参与编译。

官方推荐使用Application.streamingAssetsPath来获得该文件夹的实际位置,其可以规避平台差异。

对于Unity Editor,Windows平台,其等价于:Application.dataPath+"/StreamingAssets"

对于macOS,其等价于:Application.dataPath+"/Resources/Data/StreamingAssets"

对于ios平台,其等价于:Application.dataPath + "/Raw";

对于android平台,其等价于:"jar:file://" + Application.dataPath + "!/assets/";

补充:

对于android平台

Application.streamingAssetsPath的详细格式形如:“jar:file:///data/app/包名-XXXXX/base.apk!/assets” 亦即 “jar:file://”+Application.dataPath+“!/assets”

Application.dataPath的详细格式形如:“/data/app/包名-XXXXX/base.apk”

Application.persistentDataPath的信息格式形如:“/storage/emulated/0/Android/data/包名/files”

隐藏的资源

在导入过程中,Unity 忽略 Assets 文件夹(或其子文件夹)中的以下文件和文件夹:

隐藏的文件夹。

以“.”开头的文件和文件夹。

以“~”结尾的文件和文件夹。

名为 cvs 的文件和文件夹。

扩展名为 .tmp 的文件。

这可以防止导入由操作系统或其他应用程序创建的特殊文件和临时文件。

我的使用情况是在项目中有的资源是辅助性或测试的资源,我不想在发布时嵌入包中,这些我就会使用到上面的规则。

Gizmos

Gizmos 允许将图形添加到 Scene 视图,以帮助可视化不可见的设计细节。Gizmos.DrawIcon 函数在场景中放置一个图标,作为特殊对象或位置的标记。必须将用于绘制此图标的图像文件放在名为 Gizmos 的文件夹中,这样才能被 DrawIcon 函数找到。

只能有一个 Gizmos 文件夹,且必须将其放在项目的根目录,直接位于 Assets 文件夹中。将所需的资源文件放在此 Gizmos 文件夹内或其中的子文件夹内。如果资源文件位于子文件夹中,请始终在传递给 Gizmos.DrawIcon 函数的路径中包含子文件夹路径。

Editor

编辑器脚本在开发期间向 Unity 添加功能,但在运行时在构建中不可用。Editor 文件夹中的脚本以编辑器脚本的形式运行,而不是运行时脚本。

可在 Assets 文件夹中的任何位置添加多个 Editor 文件夹。应将 Editor 脚本放在 Editor 文件夹内或其中的子文件夹内。

Editor 文件夹的确切位置会影响其脚本相对于其他脚本的编译时间。参阅特殊文件夹和脚本编译顺序上的文档了解完整的描述。

使用 Editor 脚本中的 EditorGUIUtility.Load 函数可从 Editor 文件夹中的 Resources 文件夹加载资源。这些资源只能通过 Editor 脚本加载,并会从构建中剥离。

注意:如果脚本位于 Editor 文件夹中,Unity 不允许将派生自 MonoBehaviour 的组件分配给游戏对象。

Editor Default Resources

Editor 脚本可以使用通过 EditorGUIUtility.Load 函数按需加载的资源文件。此函数在名为 Editor Default Resources 的文件夹中查找资源文件。

只能有一个 Editor Default Resources 文件夹,且必须将其放在项目的根目录中;直接位于 Assets 文件夹中。将所需的资源文件放在此 Editor Default Resources 文件夹内或其中的子文件夹内。如果资源文件位于子文件夹中,请始终在传递给 EditorGUIUtility.Load 函数的路径中包含子文件夹路径。

Plugins

Plugins文件夹是用于存放第三方插件和库文件的文件夹。这些插件和库文件可以是由其他开发者创建的,用于扩展Unity的功能或提供特定的功能支持。

在Unity项目的根目录下,可以找到一个名为"Assets/Plugins"的文件夹。在这个文件夹中,可以放置编译后的插件文件,如C++编写的动态链接库(.dll文件)或其他平台特定的插件文件。

使用Plugins文件夹可以方便地将第三方插件和库文件与Unity项目集成在一起,并在项目中使用它们的功能。可以通过在Unity脚本中调用插件的API或使用插件提供的功能来实现这一点。

需要注意的是,Plugins文件夹中的插件文件需要按照Unity支持的平台进行编译,以确保在特定平台上能够正常工作。否则,在构建项目时可能会出现问题。

此外,Unity还提供了其他类型的插件文件夹,如"Editor"文件夹用于存放编辑器插件,"iOS"文件夹用于存放iOS平台相关的插件等。这些文件夹的作用和用法与Plugins文件夹类似,但是它们更加特定于不同的用途和平台。

  • 项目中使用

在我的开放出来的游戏项目中已基本使用了上述准则,希望我提供的游戏项目能够帮助到大家。

  • 23
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值