当前位置: 首页 > news >正文

Unity 特殊文件夹

文件夹名称
Assets资产
Editor编辑器
Editor default resources编辑器资源
Gizmos辅助图标
Plugins插件
Resources资源
Standard Assets标准资产
StreamingAssets流资产
PersistentDataPath持久数据

Editor 编辑器文件夹

这个文件夹是专门用来做编辑器级别功能的,比如一些辅助开发的插件,或者地图生成器、角色展示器等,这类功能都是在开发过程中使用的,不需要打包到游戏中。

Editor文件夹可以有多个,可以直接放在Assets文件夹下,也可以放在某个功能子文件夹下,官方说法是可在 Assets 文件夹中的任何位置添加多个 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 函数的路径中包含子文件夹路径。

StreamingAssets 流资源文件夹

这是一个只读、不可写的资源文件夹(在Assets中,需要自己创建),但是其中的文件不压缩也不加密,官方推荐使用Application.streamingAssetsPath来获得该文件夹的实际位置,其可以规避平台差异。

  • 对于Unity Editor,Windows平台,其等价于:Application.dataPath+"/StreamingAssets"
  • 对于macOS,其等价于:Application.dataPath+"/Resources/Data/StreamingAssets"
  • 对于ios平台,其等价于:Application.dataPath + "/Raw";
  • 对于android平台,其等价于:"jar:file://" + Application.dataPath + "!/assets/";

通常存放二进制文件、配置文件或文件型数据库。

Resources 资源文件夹

只读,其中的文件打包时会压缩加密,使用Resources.Load方法动态加载,一般放一些动态加载的模型资源Prefab、Object之类的,跟cocos的Resources是一样的。
这个文件夹好不好?好!但是该不该随便用呢?答案是不应该。

  1. 它使内存管理变得困难;
  2. 不恰当的使用Resource文件夹,会增加程序启动时间和打包时间;
  3. 降低了工程中的内容转换到特定平台的能力,使内容更新困难;
  4. 随着Resources文件夹数量的增加,对这些文件夹中的Assets的管理变得非常困难;
  5. 资源系统降低了项目向特定平台提供自定义内容的能力,并消除了增量内容升级的可能性;
  6. unity为了兼容所有平台,Resources文件下的资源使用的统一打包,这就会对资源的优化有一定的限制,比如说把图片放在Resource文件夹下,unity不会对这些图片做压缩,这无异是增加了包体大小。

Gizmos

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

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

Plugins

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

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

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

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

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

Library 库文件夹

Unity把Asset下支持的资源导入成自身识别的格式,以及编译代码成为DLL文件都放在Library文件夹中。Unity编辑器自动生成Library文件夹并不会 自动删除 不需要的资源文件,当删除文件夹Assets的图片、音频资源的时候,并不会自动删除,而是保留,这就是为什么这个Library文件夹会越来越大的原因。

persistentDataPath 持久数据文件夹

所有平台可读可写(有人也称之为:持久化路径)。一般用于存放动态下载或者动态创建的文件,游戏中创建或者获取的文件都会放在这里(如热更资源或者保存为文件形式的用户数据)但是,此文件夹和StreamingAssets还有一个不同点:在Editor阶段是没有的, 等到手机安装App会自动生成.

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 面试题总结(四) -- STL与算法篇
  • TI DSP下载器XDS100 V2.0无法使用问题
  • MATLAB 从 R2024B 开始支持树莓派 5
  • 【C++】模板进阶:深入解析模板特化
  • 【C++题目】1.日期差值
  • C/C++内存管理——内存泄漏/内存碎片
  • 揭秘LLM计算数字的障碍的底层原理
  • 图论篇--代码随想录算法训练营第五十八天打卡|拓扑排序,dijkstra(朴素版),dijkstra(堆优化版)精讲
  • 洛谷9.16
  • 【C++】入门基础(下)
  • Java 流 (Stream) 详解
  • 电气自动化入门01:电工基础
  • 整型提升整型提升练习题
  • 用于稀疏自适应深度细化的掩码空间传播网络 CVPR2024
  • 前端基础知识+算法(一)
  • angular组件开发
  • crontab执行失败的多种原因
  • HTML-表单
  • Javascript 原型链
  • JavaScript函数式编程(一)
  • leetcode-27. Remove Element
  • PAT A1092
  • PHP变量
  • React-redux的原理以及使用
  • Sublime text 3 3103 注册码
  • uva 10370 Above Average
  • 从重复到重用
  • 京东美团研发面经
  • 聊聊flink的TableFactory
  • 前端知识点整理(待续)
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 2017年360最后一道编程题
  • # 数论-逆元
  • #、%和$符号在OGNL表达式中经常出现
  • #70结构体案例1(导师,学生,成绩)
  • #define
  • $.ajax()方法详解
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (39)STM32——FLASH闪存
  • (C)一些题4
  • (C++17) optional的使用
  • (Charles)如何抓取手机http的报文
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (简单) HDU 2612 Find a way,BFS。
  • (理论篇)httpmoudle和httphandler一览
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (十五)使用Nexus创建Maven私服
  • (游戏设计草稿) 《外卖员模拟器》 (3D 科幻 角色扮演 开放世界 AI VR)
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • ... 是什么 ?... 有什么用处?
  • .NET : 在VS2008中计算代码度量值
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .Net CF下精确的计时器
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?