unity android 在后台运行_Unity学习—资源管理概览

2023-11-05

本文介绍了 Unity 常用四种默认路径,以及 AssetDataBase、Resources、AssetBundle 和目前最新的 Addressable 四种资源管理方式

文中所有 API 均以版本 2019.3 为准

本文原地址:Unity学习—资源管理概览

资源路径

Application.dataPath

官方文档

只读,Editor 可读写

游戏数据相对路径,即游戏安装路径,PC 上路径会使用 '/' 分割文件夹

  • Unity Editor: <项目根路径>/Assets
  • Mac player: <App 包路径>/Contents
  • iOS player: <App 包路径>/<AppName.app>/Data
  • Win/Linux player: <可执行数据文件夹路径>
  • WebGL: player data 文件的 绝对 url 地址 (不包含具体文件名)
  • Android: 一般为 APK 路径, 若使用 split binary build, 则为 OBB 路径
  • Windows Store Apps: player data 文件夹的绝对地址

Application.persistentDataPath

官方文档

可读写,用于持久化数据存储,在 iOS 和 Android 平台该路径指向设备的公共路径,该目录不会随 App 升级而删除,但可被用户直接删除

persistentDataPath的路径由Bundle Identifier生成的 GUID 组成,只要Bundle Identifier不变,路径不变

iOS 会自动将 persistentDataPath 路径下的文件备份到 iCloud

  • Windows Store Apps: %userprofile%AppDataLocalPackages<productname>LocalState
  • iOS: /var/mobile/Containers/Data/Application/<guid>/Documents
  • Android: /storage/emulated/0/Android/data/<packagename>/files 该路径由 android.content.Context.getExternalFilesDir 获得,部分机型该路径会指向 SD 卡
  • Mac: ~/Library/Application Support/<company name>/<product name> ,旧版本还可能为 ~/Library/Caches~/Library/Application Support/unity.company name.product name,Unity 会查询并使用以上路径中最早的路径

Application.streamingAssetsPath

官方文档 官方手册

只读,Editor 可读写

流数据存储的相对路径,该目录下 Asset 在 Unity 编译时不会被 Unity 打包,使其在运行时可直接通过路径获取,可将资源放入 Assets 目录下任何名为 StreamingAssets文件夹

StreamingAssets中资源可使用 I/O 读取,但 WebGL 和 Android 平台下该路径为 URL,不支持直接获取,因此需使用 UnityWebRequest获取。若其他平台使用 UnityWebRequest 获取,则需在路径前加上"file://" ,如 "file://" + Application.streamingAssetsPath + "/file.mp4"

  • Unity Editor, Windows, Linux players, PS4, Xbox One, Switch : Application.dataPath + "/StreamingAssets"
  • Mac: Application.dataPath + "/Resources/Data/StreamingAssets"
  • iOS: Application.dataPath + "/Raw"
  • Android: "jar:file://" + Application.dataPath + "!/assets" (压缩后的 APK/JAR 文件)

Application.temporaryCachePath

可读写,临时数据和缓存路径,应用更新或覆盖安装时不会被清除,手机空间不足时才可能会被系统清除

路径示例

读写权限说明

说明

资源加载

推荐官方教程

AssetDataBase

AssetDataBase 可在 Editor 环境下对项目 Asset 进行增删改查等操作(可实现与 Unity 编辑器顶部工具栏 Assets 选项下基本相同的功能),使用方法可参考官方手册 接口文档

Resources

接口文档

可在项目 Assets 目录下任意位置创建Resources文件夹,打包时 Unity 会整合所有位于Resources文件夹的 Asset 及其依赖,并生成一个只读的 resources.assets 资产文件,对于 Resources 目录中在游戏中被直接引用的资产,则会被另外打包到 sharedassets0.assets

Resources 最佳实践

官方的建议是不使用 Resources,有以下几点原因:

  1. Resources 文件夹会导致内存管理困难
  2. 不适当使用 Resources 文件夹会加长应用启动和编译时间,Resources 文件夹越多,Asset 管理越困难
  3. Resources 系统降低项目针对指定平台使用自定义内容的能力,并且无法实现增量更新(AssetBundle 是 Unity 针对不同设备提供特定内容的主要工具)

适合使用 Resources 的场景:

  1. 因其简单快速的特性
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

unity android 在后台运行_Unity学习—资源管理概览 的相关文章

  • ListItem 附加自定义值

    我在asp net中使用dropdownlist 它有代表下拉列表项目的ListItem集合 每个ListItem只有两个字段来保存数据 Value和Text字段 但这些还不够 我想保存更多数据对于每个项目 假设附加字段中有 Text1 和
  • 如何从 Magento One Page Checkout 获取发布数据?

    为了在 Magento Checkout 中添加客户评论字段 我在相应的模板文件中添加了一个文本字段 并使用如下观察器将评论添加到订单中 comment strip tags Mage app gt getRequest gt getPar
  • 如何在 iOS 中注册自定义文件类型

    我目前正在创建一个应用程序 我想让用户在其中备份他们的文件 plist m4a 我压缩文件并将扩展名更改为自定义扩展名 专门针对我的应用程序 例如 MyBackup 然后 用户可以通过电子邮件或 iTunes 文件共享进行导出 我已经阅读过
  • 如何将变量插入 PHP 数组?

    我在网上查了一些答案 但都不是很准确 我希望能够做到这一点 id result id info array id Example echo info 0 这有可能吗 您需要的是 不推荐 info array id Example varia
  • javax.persistence.Table.indexes()[Ljavax/persistence/Index 中的 NoSuchMethodError

    我有一个 Play Framework 应用程序 并且我was使用 Hibernate 4 2 5 Final 通过 Maven 依赖项管理器检索 我决定升级到 Hibernate 4 3 0 Final 成功重新编译我的应用程序并运行它
  • 如何更改 aptana studio 的背景颜色?

    如何将 Aptana IDE 或整个主题 的黑色背景更改为其他背景 例如蓝色 正如 gyozo 在评论中提到的 对于蓝色主题 请使用 窗口 gt 首选项 gt Aptana Studio gt 主题 并选择 Eclipse 主题
  • 如何获得 JavaScript 阶乘程序的循环来显示所使用的工作?

    你好 我面临着用 JavaScript 编写一个程序的挑战 尽管我对它不太了解 但它要求用户输入一个数字 然后计算该数字的阶乘 我使用了已经提出的问题并设法使计算正常工作 但无法获得所需的输出 我必须在以下输出中获取它 而不使用任何花哨的库
  • 用javascript调用外部网页(跨域)

    我正在尝试使用以下网络服务来验证提要这个问题 https stackoverflow com questions 11996430 check if a url is a valid feed 但浏览器不允许我向另一台服务器发送 ajax
  • 如何将十六进制字符串转换为无符号长整型?

    我有以下十六进制值 CString str str T FFF000 如何将其转换为unsigned long 您可以使用strtol作用于常规 C 字符串的函数 它使用指定的基数将字符串转换为 long long l strtol str
  • 在Python中停止ThreadPool中的进程

    我一直在尝试为控制某些硬件的库编写一个交互式包装器 用于 ipython 有些调用对 IO 的影响很大 因此并行执行任务是有意义的 使用 ThreadPool 几乎 效果很好 from multiprocessing pool import
  • Swagger/Openapi-Annotations:如何使用 $ref 生成 allOf?

    我正在生成 Rest 端点 包括添加OpenAPI Swagger对生成的代码进行注释 虽然它对于基本类型运行得很好 但我在自定义类方面遇到了一些问题 现在我有很多自定义类的重复架构条目 使用 Schema 实现 MyClass class
  • 不区分大小写的字符串比较 C++ [重复]

    这个问题在这里已经有答案了 我知道有一些方法可以进行忽略大小写的比较 其中涉及遍历字符串或一个good one https stackoverflow com questions 11635 case insensitive string
  • Biopython 可以执行 Seq.find() 来解释歧义代码吗

    我希望能够在 Seq 对象中搜索考虑歧义代码的子序列 Seq 对象 例如 以下内容应该是正确的 from Bio Seq import Seq from Bio Alphabet IUPAC import IUPACAmbiguousDNA
  • 使用 VBA 通过 Access 导航网页/操作 IE

    你好 StackOverflow 社区 我有一个关于使用 Access VBA 操作 IE 的问题 本质上 我正在尝试编写代码 使用 IE 打开特定网页 在该页面中搜索特定链接 目标链接的名称将取决于用户的情况 通过以编程方式单击该链接导航
  • 使用适用于 Android 和 ios 的 Angular NativeScript 的透明选项卡栏和操作栏

    我想让标签栏透明 操作栏在滑动布局或页面上透明 操作栏或选项卡栏必须位于页面顶部 就像两层一样 我尝试过使用 css 使其透明 但它在页面上并没有变得透明
  • JQuery 删除和内存泄漏

    我正在开发一个游戏 我看到了很多内存消耗 我使用jquery animate 动画完成后 我 remove 元素 我的问题是 从 dom 树中删除一个元素后 对象还存在记忆中吗 Javascript 是一种垃圾收集语言 这意味着当没有代码保
  • ubuntu:升级软件(cmake)-版本消歧(本地编译)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我的机器上安装了 cmake 2 8 0 来自 ubuntu 软件包 二进制文件放置在 usr bin cmake 中 我需要将 cmake 版本至少
  • 使用 IIS 发布:找不到服务器 DNS

    我正在尝试使用 IIS 发布我的项目 我能够通过 Visual Studio 发布它 La aplicaci n web se public correctamente file D www plataformafantasy com Co
  • 在 Google 地图上绘制线条/路径

    我很长一段时间都在忙于寻找如何在 HelloMapView 中的地图上的两个 GPS 点之间画一条线 但没有运气 谁能告诉我该怎么做 假设我使用扩展 MapView 的 HelloMapView 我需要使用叠加层吗 如果是这样 我是否必须重
  • 谓词对于列表中的所有元素都必须为 true

    我有一组事实 likes john mary likes mary robert likes robert kate likes alan george likes alan mary likes george mary likes har

随机推荐

  • 【机器学习实战】11、利用SVD简化数据

    文章目录 14 1 1 隐形语义索引 14 1 2 推荐系统 14 2 矩阵分解 SVD矩阵分解 14 3 利用python实现SVD 14 4 1 相似度计算 14 4 2 基于物品的相似度还是基于用户的相似度 14 4 3 推荐引擎的评
  • 【数据挖掘】数据清洗

    什么是数据清洗 数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序 包括检查数据一致性 处理无效值和缺失值等 与问卷审核不同 录入后的数据清理一般是由计算机而不是人工完成 数据清洗的步骤 缺失值的处理 无效值的处理 统一规格 纠正错
  • 断点续传与差分升级

    断点续传的原理 基于STM32单片机的差分升级 增量升级 算法 OTA 差分升级 云端一体化差分升级 AliOS Things物联网升级 利器 详解STM32在线IAP升级 单片机差分升级算法 STM32 M0 M3 M4等芯片都适用 Al
  • 【DICOM医学影像1】数据格式存储于显示,基本知识科普指南

    DICOM Digital Imaging and Communications in Medicine 数据格式 是医学影像存储中的标准格式 无论是X光 CT 还是MRI等等影像 采集的原理不同 但是存储的格式一般都是统一的 本文就对DI
  • 杂记——4.书写spring时出现的Error creating bean with name ‘user0‘ defined in file错误

    目录 1 问题描述 2 情况描述 3 解决方法 4 问题原因 1 问题描述 当我们运行一个spring程序时 出现下图的错误 重点语句 Error creating bean with name user011 defined in fil
  • 腾讯在线教育互动课堂——Demo调试过程记录

    官方文档地址 https cloud tencent com document product 680 17888 Demo调试 不像集成使用 不需要完全按照文档一步步处理 基本的代码 集成在下载下来的demo项目上都已经写好了 以下记录以
  • 550种Blender风格化笔刷素材

    550种Blender风格化笔刷素材 550 Blender刷风格化版 包括4K阿尔法 大小解压后 3G 信息 一个伟大的自定义风格化的刷子使用Blender收集 Alphas包含在其他软件中使用 ArtStation MEGAPACK 5
  • 小程序中 rich-text 显示富文本

    在使用 rich text 来显示fuwq富文本时需要注意后台返回的数据是一个网页转义字符 直接使用rich text的话是无法正常解析的 那么需要使用下面的一个方法进行反转义即可 小程序里的转义方法 escape2Html functio
  • More Effective C++

    链接 https pan baidu com s 1oIns7Z7CWD6zAz17IFImWw 提取码 4stq Scott Meyers大师Effective三部曲 Effective C More Effective C Effect
  • C/C++编程笔记:C++中的指针与引用,又在什么时候使用?

    C和C 支持与大多数其他编程语言不同的指针 其他语言包括C Java Python Ruby Perl和PHP 从表面上看 引用和指针非常相似 都用于使一个变量提供对另一变量的访问 两者都提供了许多相同的功能 因此通常不清楚这些不同机制之间
  • 8086/8088的寻址方式

    根据操作数所在位置将寻址方式分为 立即寻址 寄存器寻址 存储器寻址 I O端口寻址 立即寻址 操作数位于指令区 代码段 如 Mov dx 2100H Mov AX A 源操作数不能超过目的操作数的表数范围 必须符合数据类型相匹配的原则 立即
  • 多数CEO预计受疫情影响未来半年收入将下降;上海国际酒店投资加盟展将延期

    全球抗击新冠疫情 关于COVID 19商业影响的新YPO行政总裁全球调查发布 由130个国家超过29000位首席执行官组成的全球领导力社区YPO进行了一项全会员调查 以了解COVID 19的商业影响 了解首席执行官由于这一新的商业现实而采取
  • CSDN博客修改不了头像的最新解决方法

    自己的博客不能改头像 清理缓存 换IE浏览器 都不行 以前有类似经历 可以在手机APP上修改头像 然后自动同步了 下载 CSDN APP 左上角 个人中心 点击 头像 修改就好了 我修改后没立即出来 延迟可能
  • C + + 使用小括号/大括号直接赋值,又叫列表初始化。简介

    C 使用小括号 大括号直接赋值 又叫列表初始化 简介 C 可以使用 小括号 大括号 直接赋值 并且 兼容了 C风格 的等号 赋值 C 使用小括号 大括号直接赋值 又叫列表初始化 简介 C 中 我们可以使用小括号直接赋值的方式 将多个值赋给一
  • Vue中使用动画

    在Vue中使用动画效果 1 使用transition标签包裹需要动画显示的内容 1 1 默认名的方式
  • java并发编程笔记(五)--共享模型之无锁

    1 无锁解决线程安全问题 就是使用CAS 利用乐观锁的不断确认 来保证线程安全 乐观锁时原子系列类的方法 使用的时候需要创建原子系列对象 创建原子整数对象 AtomicInteger balance new AtomicInteger 举个
  • 《重构 改善既有代码的设计 1》重构原则

    前言 重构 既有代码的设计 一本经典神书 两年前入手 一年前看了一半 感觉一般般 今天起 再次拜读 希望会有不一样的收获 startTime 2020 12 16 23 22 endTime 2020 12 16 23 59 startPa
  • 猜你喜欢-----推荐系统原理介绍

    写在正文之前 最近在做推荐系统 在项目组内做了一个分享 今天有些时间 就将逻辑梳理一遍 将ppt内容用文字沉淀下来 便于接下来对推荐系统的进一步研究 推荐系统确实是极度复杂 要走的路还很长 A First Glance 为什么需要推荐系统
  • Error:Cannot build artifact xxx:war exploded‘ because it is included into a circular dependency

    IDEA 项目报错 Error Cannot build artifact xxx war exploded because it is included into a circular dependency 解决 ctrl alt shi
  • unity android 在后台运行_Unity学习—资源管理概览

    本文介绍了 Unity 常用四种默认路径 以及 AssetDataBase Resources AssetBundle 和目前最新的 Addressable 四种资源管理方式 文中所有 API 均以版本 2019 3 为准 本文原地址 Un