using UnityEngine;
using System.Collections;
using System; public class testLoadFromAB : MonoBehaviour { IEnumerator DownloadAndCache()
{
while (!Caching.ready)
yield return null; //注意,从本地加载时,必须使用前缀 file:///或file://,从网络加载则使用 http://,这两种协议可以在iphone和WINDOWS, 安卓上通用
//UNITY MANUAL:
//http://, https:// and file:// protocols are supported on iPhone.
//ftp:// protocol support is limited to anonymous downloads only. Other protocols are not supported.
//WWW www = WWW.LoadFromCacheOrDownload ("file:///Z:/unity/learn-test/Assets/AssetBundles/cubes.unity3d", 22);
Debug.Log (Application.dataPath);
Debug.Log (Application.streamingAssetsPath);
Debug.Log (Application.persistentDataPath);
Debug.Log (Application.temporaryCachePath);
AssetBundle bundle = AssetBundle.LoadFromFile ("Assets/AssetBundles/cubes.unity3d");
// yield return www;
// if(!string.IsNullOrEmpty (www.error)){//有些平台不支持string为null,这种写法可以避免意外
// Debug.LogError (www.error);
// yield break;
// } //AssetBundle bundle = www.assetBundle; //注意必须使用Instantiate实例化出来才能将两个CUBE显示到场景中
//Instantiate实际上复制,浅复制,destroy也是浅销毁,只销毁物体本身不管物体的引用。
//prefab与gameobject一样,有些组件是引用的,比如材质贴图。
//loadasset去加载一个prefab时,会把此预设用到的所有资源都加载到内存,比如材质贴图。
Instantiate (bundle.LoadAsset ("DecalCube2"));
Instantiate (bundle.LoadAsset ("DecalCube3")) ; //参数为true时,将销毁所有从loadasset加载出来的资源,比如DecalCube2.prefab的材质与贴图。
//虽然我们使用了Instantiate对DecalCube2.prefab进行了复制,但只是浅复制,当bundle.Unload (true)时
//贴图被释放,我们的prefab就会丢失贴图变为紫色。
bundle.Unload (true); }
// Use this for initialization
void Start () {
StartCoroutine ("DownloadAndCache");
} // Update is called once per frame
void Update () { }
}

U3D assetbundle加载与卸载的深入理解的更多相关文章

  1. U3D assetbundle加载

    using UnityEngine; using System.Collections; public class testLoadFromAB : MonoBehaviour { IEnumerat ...

  2. 细谈unity资源加载和卸载

    转载请标明出处:http://www.cnblogs.com/zblade/ 一.概要 在了解unity的资源管理方式之后,接下来细谈一下Unity的资源是如何从磁盘中加载到运行时的内存中,以及又是如 ...

  3. C#中动态加载和卸载DLL

    在C++中加载和卸载DLL是一件很容易的事,LoadLibrary和FreeLibrary让你能够轻易的在程序中加载DLL,然后在任何地方卸载.在C#中我们也能使用Assembly.LoadFile实 ...

  4. C#.Net 如何动态加载与卸载程序集(.dll或者.exe)0-------通过应用程序域AppDomain加载和卸载程序集

    本博客中以“C#.Net 如何动态加载与卸载程序集(.dll或者.exe)”开头的都是引用莫问奴归处 微软装配车的大门似乎只为货物装载敞开大门,却将卸载工人拒之门外.车门的钥匙只有一把,若要获得还需要 ...

  5. C#.Net 如何动态加载与卸载程序集(.dll或者.exe)2----通过应用程序域AppDomain加载和卸载程序集之后,如何再返回原来的主程序域

    实现目的:动态加载dll,执行完毕之后可以随时卸载掉,并可以替换这些dll,以在运行中更新dll中的类. 其实就是通过应用程序域AppDomain加载和卸载程序集. 在这方面微软有篇文章http:// ...

  6. C#.Net 如何动态加载与卸载程序集(.dll或者.exe)1----C#中动态加载和卸载DLL

    我们知道在C++中加载和卸载DLL是一件很容易的事,LoadLibrary和FreeLibrary让你能够轻易的在程序中加载DLL,然后在任何地方卸载. 在C#中我们也能使用Assembly.Load ...

  7. Qt中如何 编写插件 加载插件 卸载插件

    Qt中如何 编写插件 加载插件 卸载插件是本文要介绍的内容.Qt提供了一个类QPluginLoader来加载静态库和动态库,在Qt中,Qt把动态库和静态库都看成是一个插件,使用QPluginLoade ...

  8. 关于XLL加载项动态加载、卸载的演示及XLL函数自定义类型注册的演示

    1.在XLL中,把函数定义成不同的类型,在Excel中的实际效果也不同,具体如下: pxMacroType value                                          ...

  9. 7. Oracle数据加载和卸载

    在日常工作中:经常会遇到这样的需求: Oracle 数据表跟文本或者文件格式进行交互:即将指定文件内容导入对应的 Oracle 数据表中:或者从 Oracle 数据表导出. 其他数据库中的表跟Orac ...

随机推荐

  1. 【转】Android中处理崩溃异常

    大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了 ...

  2. Android用路径api在内部存储读写文件

    复制并修改原有项目 复制之前创建的项目CC+CV操作 需要改动的地方: * 项目名字 * 应用包名 * R文件重新导包 接着修改件/AndroidManifest.xml中的包名:package=&q ...

  3. img 在层内 居中显示

    div{width:250px;height:150px;background:#000;position:relative;} img{;;;;margin: auto;} <div>& ...

  4. iOS-UI分析利器--Reveal安装破解以及简单使用

    前言:在 iOS 开发中,我们有时很希望有一款类似 Web 开发中的 UI Debug 工具(例如:Firebug),让我们能够实时查看 UI 的结构,还可以实时更改某个 UIView 的位置和大小的 ...

  5. 一些在IOS中关于JS、H5开发的网站

    1.JSPatch 2.

  6. 深入理解java虚拟机(3)---类的结构

    计算机在开始的时候,只认识0和1,所以汇编语言是和机器结构或者说CPU绑定的.ARM体系结构就是这样一种体现,指令集的概念. 随着高级语言的出现,从字编码发展到了字节编码,计算机的先驱希望能够让语言能 ...

  7. sgu 104 Little shop of flowers 解题报告及测试数据

    104. Little shop of flowers time limit per test: 0.25 sec. memory limit per test: 4096 KB 问题: 你想要将你的 ...

  8. Android开发之 Android 的基本组件的概述

    Android是一个为组件化而搭建的平台,它的应用是由一些零散的有联系的组件组成,并通过AndroidManifest.xml文件 把它们绑定起来. Android常用的组件有: Activity(活 ...

  9. linux64位android项目R文件无法生成以及Cannot run program adb

    1.本机kali2.0  64位,kali基于Debian. 2.android adb是32位,64位linux要安装32位依赖库,注意ia32-lib被lib32z1替代. 3.执行命令 sudo ...

  10. BI Project Managerment

    Design doc is the meta data of the code. The project management plan is crucial to your project sinc ...