Unity 从StreamingAssets文件夹和PersistentData文件夹 保存读取AssetBundle资源
项目中的资源一般我们打包成AssetBundle格式
方便我们加载和热更
而AssetBundle文件 一般保存在StreamingAssets文件夹或则PersistentData文件夹
首先我们看这两个文件夹有什么区别
StreamingAssets |
可读取、不可写入 |
工程Assets根目录下StreamingAssets文件夹 |
PersistentData |
可读取、可写入 |
沙盒目录,应用程序安装运行后才会出现 |
*StreamingAssets 不能写入 随包发包 适合存放一些初始化的AssetBundle资源 如 登入页 加载页等
*PersistentData 适合存放 运行程序下载的AssetBundle资源
然后我们看下这两个文件夹在各 平台 运行时 打印的 路径地址:
StreamingAssets | |
WindowsEditor | C:/Users/zq/Desktop/Test/Assets/StreamingAssets(工程目录/Assets/StreamingAssets) |
OSXEditor | /Users/zouqiang/Desktop/Test/Assets/StreamingAssets(工程目录/Assets/StreamingAssets) |
Android | jar:file:///data/app/com.Company.Test-1.apk!/assets(安装目录/assets) |
IPhonePlayer | /var/containers/Bundle/Application/5C9D81B5-2A21-45BC-B6DC-12B704976D22/Test.app/Data/Raw |
PersistentData | |
WindowsEditor | C:/Users/zq/AppData/LocalLow/DefaultCompany/Test |
OSXEditor | /Users/zouqiang/Library/Application Support/DefaultCompany/Test |
Android | /storage/emulated/0/Android/data/com.Company.Test/files |
IPhonePlayer | /var/mobile/Containers/Data/Application/F96BACED-63D5-45AE-B2A7-738A87545A8F/Documents |
StreamingAssets在各工程路径(资源更新可直接替换对应的文件 实现快速打包或测试)
Unity | C:\Users\zq\Desktop\Test\Assets\StreamingAssets |
Eclipse | C:\Users\zq\Desktop\eclipse\Test\assets |
Xcode | C:\Users\zq\Desktop\eclipse\Test\assets |
在使用
AssetBundle.LoadFromFile
AssetBundle.LoadFromFileAsync
加载StreamingAssets文件夹里面的AssetBundle
要注意
Android 获得去方式为 Application.dataPath + "!assets"
其他平台 获取的方式为 Application.streamingAssetsPath
使用
WWW
加载AssetBundle
加载StreamingAssets文件夹里面的AssetBundle
要注意
Android 获得去方式为 Application.streamingAssetsPath
其他平台 获取的方式为 "file://" + Application.streamingAssetsPath
PersistentData文件夹获取的方式都为 Application.persistentDataPath
Unity 从StreamingAssets文件夹和PersistentData文件夹 保存读取AssetBundle资源的更多相关文章
- Unity打包/读取AssetBundle资源全教程
Unity 资源AssetBundle打包 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar ...
- Unity读取AssetBundle资源全教程(所有读取方式)
读取/加载 AssetBundle 资源的多种方式 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Ch ...
- Java 创建文件夹和文件,字符串写入文件,读取文件
两个函数如下: TextToFile(..)函数:将字符串写入给定文本文件: createDir(..)函数:创建一个文件夹,有判别是否存在的功能. public void TextToFile(fi ...
- asp.net(C#)读取文件夹和子文件夹下所有文件,绑定到GRIDVIEW并排序 .
Asp部分: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MyFiles ...
- 使用Windows EFS(怎么给文件夹加密)进行文件加密
和Windows BitLocker一样,Encrypting File System(EFS,加密文件系统)是Windows内置的一套基于公共密钥的加密机制,可以加密NTFS分区上的文件和文件夹,能 ...
- C#遍历文件夹下所有文件
FolderForm.cs的代码如下: using System; using System.Collections.Generic; using System.Diagnostics; using ...
- python 替换 文件夹下的 文件名称 及 文件内容
示例效果: 1.替换某文件夹下的 文件夹及子文件夹 的名称 由OldStrDir 变为 NewStrDir: 2.替换某文件夹下的 文件夹及子文件夹 下 所有的文件的名称 由OldStrFile 变为 ...
- 【安卓】安卓res文件夹下的资源文件与R.java文件里面类的对应关系
对于drawable.layout.menu文件夹下的每一个文件都分别会在R.java文件里面生成drawable.layout.menu类的一个常量,类名就是文件夹的名字,常量的名字就是文件名字. ...
- python 实现彻底删除文件夹和文件夹下的文件
python 中有很多内置库可以帮忙用来删除文件夹和文件,当面对要删除多个非空文件夹,并且目录层次大于3层以上时,仅使用一种内置方法是无法达到彻底删除文件夹和文件的效果的,比较low的方式是多次调用直 ...
随机推荐
- Linux下进程通信之管道
每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把 ...
- 蘑菇街Android组件与插件化
插件化的基石 -- apk动态加载 随着我街业务的蓬勃发展,产品和运营随时上新功能新活动的需求越来越强烈,经常可以听到"有个功能我想周x上,行不行".行么?当然是不行啦,上新功能得 ...
- Oracle E-Business Suite Maintenance Guide Release 12.2(Patching Utilities)
更多内容参考: http://docs.oracle.com/cd/E51111_01/current/acrobat/122ebsmt.zip Oracle Patch Application As ...
- ActiveMQ系列之二:ActiveMQ安装和基本使用
下载并安装ActiveMQ服务器端 1:从http://activemq.apache.org/download.html下载最新的ActiveMQ 2:直接解压,然后拷贝到你要安装的位置就好了 启动 ...
- 关于NSString和NSMutableString的相关用法和基本介绍
Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重 ...
- AOP的相关概念
- UML用例设计
一. 用例图目的1) 界定系统范围.2) 描述参与者实现的目标和希望系统执行的一定功能.3) 描述系统功能与外部系统,人,组织交互的关系. 二. 用例分解的规则1) 用大型用例描述参与者实现的主要目标 ...
- box-sizing属性(指定针对元素的宽度与高度的计算方法)
在css中,使用width属性与height属性来指定元素的宽度与高度.使用box-sizing属性,可以指定用width属性与height属性分别指定的宽度值与高度值是否包含元素的内部补白区域与边框 ...
- JavaScript中两个对象数组 属性undefined
var BaiduUsers = []; var UserArray = function(name, phone, id, id2) { this.name = name; this.phone = ...
- Socket.io文字直播聊天室的简单代码
直接上代码吧,被注释掉的主要是调试代码,和技术选型的测试代码 var app = require('express')(); var server = require('http').Server(a ...