Unity 4.x 资源加载
using UnityEngine;
using System.Collections;
using System.IO; public class LoadResource : MonoBehaviour
{
//assetbundle 的后缀实际上可以随意自定义的
string PathAssetBundle = "D:/LgsTest/ResourcePath/Cube.assetbundle";
void Start()
{
//StartCoroutine(LoadFromMemoryAsync());
//LoadFromMemorySync();
//LoadFromLocalFile();
StartCoroutine(LoadFromWWW());
} #region 第一种加载AB的方式,从内存中加载 //通过Bundle的二进制数据,异步创建AssetBundle对象。完成后会在内存中创建较大的WebStream。
//调用时,Bundle的解压是异步进行的,因此对于未压缩的Bundle文件,该接口与CreateFromMemoryImmediate等价。
IEnumerator LoadFromMemoryAsync()
{
AssetBundleCreateRequest request = AssetBundle.CreateFromMemory(File.ReadAllBytes(PathAssetBundle));
yield return request;
AssetBundle bundle = request.assetBundle;
Instantiate(bundle.Load("Cube"));
} void LoadFromMemorySync()
{
AssetBundle bundle = AssetBundle.CreateFromMemoryImmediate(File.ReadAllBytes(PathAssetBundle));
Instantiate(bundle.Load("Cube"));
}
#endregion #region 第二种加载AB的方式,从本地中加载 //加载的资源只能是未压缩的(即在打包资源的时候要加上 BuildAssetBundleOptions.UncompressedAssetBundle),压缩过的资源会加载失败
//通过未压缩的Bundle文件,同步创建AssetBundle对象,这是最快的创建方式。创建完成后只会在内存中创建较小的SerializedFile,而后续的AssetBundle.Load需要通过IO从磁盘中获取。
void LoadFromLocalFile()
{
AssetBundle bundle = AssetBundle.CreateFromFile(PathAssetBundle);
Instantiate(bundle.Load("Cube"));
} #endregion #region 第三种加载AB的方式,通过WWW加载 IEnumerator LoadFromWWW()
{
while (!Caching.ready)
yield return null;
WWW www = GetWWWInstance(false, PathAssetBundle);
yield return www; if (!string.IsNullOrEmpty(www.error))
{
Debug.Log(www.error);
yield break;
} AssetBundle bundle = www.assetBundle;
Instantiate(bundle.Load("Cube"));
} //WWW对象的获取方式有两种
//方式一 :加载Bundle文件并获取WWW对象,完成后会在内存中创建较大的WebStream
//方式二:加载Bundle文件并获取WWW对象,同时将解压形式的Bundle内容存入磁盘中作为缓存(如果该Bundle已在缓存中,则省去这一步),
// 完成后只会在内存中创建较小的SerializedFile,而后续的AssetBundle.Load需要通过IO从磁盘中的缓存获取。
WWW GetWWWInstance(bool isNew, string url)
{
WWW www = null;
if (isNew)
www = new WWW(url);
else
www = WWW.LoadFromCacheOrDownload(url, 0);
return www;
} #endregion
}
Unity 4.x 资源加载的更多相关文章
- Unity -- AssetBundle(本地资源加载和加载依赖关系)
1.本地资源加载 1).建立Editor文件夹 2).建立StreamingAssets文件夹和其Windows的子文件夹 将下方第一个脚本放入Editor 里面 脚本一 资源打包AssetBund ...
- 细谈unity资源加载和卸载
转载请标明出处:http://www.cnblogs.com/zblade/ 一.概要 在了解unity的资源管理方式之后,接下来细谈一下Unity的资源是如何从磁盘中加载到运行时的内存中,以及又是如 ...
- 详谈 Unity3D AssetBundle 资源加载,结合实际项目开发实例
第一次搞资源更新方面,这里只说更新,加载,AssetBundle资源加载,谈谈自己的理解,以及自己在项目中遇到的那些神坑,现在回想一下,真的是自己跪着过来的,说多了,都是泪. 我这边是安卓AssetB ...
- AssetBundle使用心得【资源加载】
0.资源加载方式 静态资源 Asset下所有资源称为静态资源 Resources资源 Resources目录下,通过实例化得到的资源 AssetBundle资源 又称为增量更新资源 1.什么是Asse ...
- UNITY所谓的异步加载几乎全部是协程,不是线程;MAP3加载时解压非常慢
实践证明,以下东西都是协程,并非线程(thread): 1,WWW 2,AssetBundle.LoadFromFileAsync 3,LoadSceneAsync 其它未经测试 此问题的提出是由于一 ...
- Direct2D开发:从资源加载位图
转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 Direct2D使用Windows图像处理组件 (WIC) 来加载位图.从文件加载位图的方法很简单,而且网上的教 ...
- prelaod场景,用来显示资源加载进度
phaser.js的源码可以到它在github上的托管里去下载,游戏要用到的图片声音等素材资源请点击这里下载.Phaser的使用非常简单,只需要引入它的主文件,然后在页面中指定一个用来放置canvas ...
- 【Android开发学习笔记】【高级】【随笔】插件化——资源加载
前言 上一节我们针对插件最基本的原理进行了一个简单的demo实现,但是由于插件的Context对象被宿主所接管,因此无法加载插件程序的资源.那么如何解决这个问题捏? 有人提出这样的方案:将apk中的资 ...
- Duilib学习笔记《07》— 资源加载
Duilib的界面表现力能如此丰富,很大程度上得益于贴图描述的简单强大.通过之前的学习及参看相关例子,我们可以发现,在XML布局文件中,不管是窗体背景还是控件,都添加了对应的图片资源以此来美化界面.而 ...
随机推荐
- python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法
python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...
- git必备命令
git status 查看git的状态git add <path>的形式把我们<path>添加到索引库中,<path>可以是文件也可以是目录.git add -u ...
- 关于webpack的path和publicPath。
path:所有输出文件的目标路径; publicPath:输出解析文件的目录,url 相对于 HTML 页面 区别:path是webpack所有文件的输出的路径,必须是绝对路径,比如:output输出 ...
- python-随机数的产生random模块
random模块用来产生随机数: 查看random模块的方法: import random random.__dir__ Out[39]: <function __dir__> rando ...
- PHP安装Xdebug扩展并配置PHPstorm调试(Centos、Windows)
一.给PHP安装Xdebug扩展 [windows] 废话不多说,直接上代码上方法安装扩展,我这里是在windows下. 首先需要确定的就是对应的PHP版本安装对应的Xdebug扩展文件,提供一个最快 ...
- jQuery API的特点
jQuery API 的特点 版权声明:未经博主授权,严禁转载分享 jQuery API 的三大特点 1. jQuery 对象是一个类数组对象,API自带遍历效果 - 对 jQuery 对象调用一次A ...
- 20165310 java_blog_week3
2165310 <Java程序设计>第3周学习总结 教材学习内容总结 类 声明与命名规则 驼峰原则 变量:体现属性 方法:体现行为/功能 变量: 成员变量与局部变量: 成员变量:有效范围: ...
- 面向对象第一话,大战java正则表达式
本周我们迎来第一项任务,java面向对象之实现对一串字符的匹配以及构造出计算的多项式,最终得出计算的结果.简而言之,可以用以下的要求来看题目: 输入的多项式字符串中不得出现非法字符 多项式的输入型式, ...
- CF 316E3 Summer Homework(斐波那契矩阵+线段树)
题目链接:http://codeforces.com/problemset/problem/316/E3 题意:一个数列A三种操作:(1)1 x y将x位置的数字修改为y:(2)2 x y求[x,y] ...
- python中的迭代器和生成器学习笔记总结
生成器就是一个在行为上和迭代器非常类似的对象. 是个对象! 迭代,顾名思意就是不停的代换的意思,迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果.每一次对过程的重复称为一次“迭代”,而 ...