我的Unity学习笔记之——Unity中从网站下载ab资源+下载存储一条龙
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.Networking;
- using System.IO;
- public class DownLoadAssetBundle : MonoBehaviour {
- private string mainAssetBundleURL = @"http://www.XXX.com/AssetBundles/AssetBundles";
- private string allAssetBundleURL = @"http://www.XXX.com/AssetBundles/";
- void Start () {
- StartCoroutine("DownLoadMainAssetBundel");
- }
- IEnumerator DownLoadMainAssetBundel()
- {
- UnityWebRequest request = UnityWebRequest.GetAssetBundle(mainAssetBundleURL);
- yield return request.Send();
- AssetBundle ab = DownloadHandlerAssetBundle.GetContent(request);
- //Debug.Log("OK");
- AssetBundleManifest manifest = ab.LoadAsset<AssetBundleManifest>("AssetBundleManifest");
- string[] names = manifest.GetAllAssetBundles();
- for (int i = ; i < names.Length; i++)
- {
- Debug.Log(allAssetBundleURL + names[i]);
- StartCoroutine(DownLoadSingleAssetBundel(allAssetBundleURL + names[i]));
- }
- }
- /// <summary>
- /// 下载单个AB文件
- /// </summary>
- IEnumerator DownLoadSingleAssetBundel(string url)
- {
- UnityWebRequest request = UnityWebRequest.GetAssetBundle(url);
- yield return request.Send();
- AssetBundle ab = DownloadHandlerAssetBundle.GetContent(request);
- //Debug.Log("OK");
- string[] names = ab.GetAllAssetNames();
- for (int i = ; i < names.Length; i++)
- {
- string tempName = Path.GetFileNameWithoutExtension(names[i]);
- //Debug.Log(tempName);
- GameObject gameObject = ab.LoadAsset<GameObject>(tempName);
- GameObject.Instantiate<GameObject>(gameObject);
- }
- }
- }
下面是下载存储一条龙
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.Networking;
- using System.IO;
- public class DownLoadAssetBundle : MonoBehaviour {
- private string mainAssetBundleURL = @"http://www.XXX.com/AssetBundles/AssetBundles";
- private string allAssetBundleURL = @"http://www.XXX.com/AssetBundles/";
- void Start () {
- StartCoroutine("DownLoadMainAssetBundel");
- }
- IEnumerator DownLoadMainAssetBundel()
- {
- UnityWebRequest request = UnityWebRequest.GetAssetBundle(mainAssetBundleURL);
- yield return request.Send();
- AssetBundle ab = DownloadHandlerAssetBundle.GetContent(request);
- //Debug.Log("OK");
- AssetBundleManifest manifest = ab.LoadAsset<AssetBundleManifest>("AssetBundleManifest");
- string[] names = manifest.GetAllAssetBundles();
- for (int i = ; i < names.Length; i++)
- {
- Debug.Log(allAssetBundleURL + names[i]);
- //StartCoroutine(DownLoadSingleAssetBundel(allAssetBundleURL + names[i]));
- StartCoroutine(DownLoadAssetBundelAbdSave(allAssetBundleURL + names[i]));
- }
- }
- /// <summary>
- /// 下载单个AB文件不保存
- /// </summary>
- IEnumerator DownLoadSingleAssetBundel(string url)
- {
- UnityWebRequest request = UnityWebRequest.GetAssetBundle(url);
- yield return request.Send();
- AssetBundle ab = DownloadHandlerAssetBundle.GetContent(request);
- //Debug.Log("OK");
- string[] names = ab.GetAllAssetNames();
- for (int i = ; i < names.Length; i++)
- {
- string tempName = Path.GetFileNameWithoutExtension(names[i]);
- //Debug.Log(tempName);
- GameObject gameObject = ab.LoadAsset<GameObject>(tempName);
- GameObject.Instantiate<GameObject>(gameObject);
- }
- }
- /// <summary>
- /// 下载AB文件并保存到本地
- /// </summary>
- /// <returns></returns>
- IEnumerator DownLoadAssetBundelAbdSave(string url)
- {
- WWW www = new WWW(url);
- yield return www;
- if(www.isDone)
- {
- //表示资源下载完毕使用IO技术把www对象存储到本地
- SaveAssetBundle(Path.GetFileName(url), www.bytes, www.bytes.Length);
- }
- }
- /// <summary>
- /// 存储AB文件到本地
- /// </summary>
- private void SaveAssetBundle(string fileName, byte[] bytes, int count)
- {
- FileInfo fileInfo = new FileInfo(Application.streamingAssetsPath + "//" + fileName);
- FileStream fs = fileInfo.Create();
- fs.Write(bytes, , count);
- fs.Flush();
- fs.Close();
- fs.Dispose();
- Debug.Log(fileName + "下载并存储完成");
- }
- }
我的Unity学习笔记之——Unity中从网站下载ab资源+下载存储一条龙的更多相关文章
- Unity学习笔记(4) --- Unity的界面排版:初识GUI
GUI和GUILayout是Unity提供的UIKit.在使用GUI的Controls时都要求设置Rect參数.没办法做到自己主动排版,给适配带来难度.而GUILayout的设计就是为了弥补这个缺陷, ...
- 并发编程学习笔记(4)----jdk5中提供的原子类及Lock使用及原理
(1)jdk中原子类的使用: jdk5中提供了很多原子类,它会使变量的操作变成原子性的. 原子性:原子性指的是一个操作是不可中断的,即使是在多个线程一起操作的情况下,一个操作一旦开始,就不会被其他线程 ...
- [学习笔记] 在Eclipse中导入项目
参考前文:[学习笔记] 在Eclips 中导出项目 选择已经导出的文件: 导入之后,项目结构如下: 至此,完成.
- CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储
CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...
- [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar中的类解压后放在运行jar中
前文: [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar打在jar包中 使用7z打开压缩包,查看所有依赖的jar都被解压以包名及class的方式存储在了运行jar中,此时jar的 ...
- [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar打在jar包中
本文需要参考前文: [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar在子目录中 上文是导出的运行的依赖jar被放在了子目录中,本文是将依赖jar放在可运行jar的本身,这样发布的 ...
- [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar在子目录中
工程创建可参考前文: [学习笔记] 在Eclipse中使用Hibernate,并创建第一个工程,数据库为Oracle XE 在工程上鼠标右键: 找到java 选择 Runable JAR file N ...
- Web安全学习笔记 SQL注入中
Web安全学习笔记 SQL注入中 繁枝插云欣 --ICML8 权限提升 数据库检测 绕过技巧 一.权限提升 1. UDF提权 UDF User Defined Function,用户自定义函数 是My ...
- (转) OpenCV学习笔记大集锦 与 图像视觉博客资源2之MIT斯坦福CMU
首页 视界智尚 算法技术 每日技术 来打我呀 注册 OpenCV学习笔记大集锦 整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的 ...
随机推荐
- lnmp之Nginx配置https加密访问
配置lnmp之Nginx网站支持https加密访问 注: 1. 这里拿购买的(pxsnx.pxjy.com)证书来做样例 证书文件共有三个---> (pxsnxg.pxjy.com_ca.crt ...
- Windows邮件客户端
换回WIndows 因为要保存邮件 所以需要邮件客户端 Foxmail 腾讯自家 同样需要独立密码 之前的foxmail是全拼 新注册了一个@qq 发现新注册的@qq绑定到的是新的QQ号 算了 去用1 ...
- 基于STM32F429+HAL库编写的定时器主从门控模式级联输出固定个数PWM脉冲的程序
硬件设备 42步进电机,步进电机驱动器,正点原子F429开发板 开发软件 keil5,Cube 综述 一般要精准的控制电机,就要控制单片机的引脚输出指定个数的PWM波,有多种可实现的方法 ...
- java调用webservice方法
由于项目的历史原因,webservice服务端是乙方公司开发的,我们自己开发的系统需要去调用乙方公司的webservice接口.前面用了网上提供的一种方法(非生成代理类),怎么也调用不成功(也许是因为 ...
- ElasticSearch日常使用脚本
1.启动服务要切换到非root账户 (例子:su - elk --command="/usr/local/elk/kibana/bin/kibana serve &")2. ...
- [转]Flash开发技能树
- windows内核驱动内存管理之Lookaside使用
Windows内存管理中使用了类似于容器的东西,叫做Lookaside对象,每次程序员申请内存都会从Lookaside里面申请,只有不足的时候,Lookaside才会向内存又一次申请内存空间,这样减少 ...
- Systemd 教程
目录 Systemd 教程 sshd.service配置模板 开机启动 启动服务 停止服务 配置文件 [Unit] 区块:启动顺序与依赖关系 [Service] 区块:启动行为 1.启动命令 2.启动 ...
- 解决修改css或js文件后,浏览器缓存未更新问题
问题描述:最近在上线新版本项目的时候,发现有的用户的操作还是调用的老版本JS里面的内容,这样就造成原来新的JS里面加上的限制不能限制用户的操作,从而导致用户可以重复操作. 问题产生原因: 如果在用户之 ...
- 使用发射将JavaBean转为Map
import java.lang.reflect.Field; private static Map<String, Object> objectToMap(Object obj) thr ...