unity html5打包,AssetBundle 如何打包AB包和调用AB包内资源

AssetBundle 如何打包AB包和调用AB包内资源

2020年07月15日

| 萬仟网IT编程

 | a48e1d17a2b0511faa7da7240b1971f6.png我要评论

打包设置首先代码打包AB很简单,我们把它放在我们项目工程的根目录下using UnityEditor;using System.IO;public class CreateAssetBundles{ [MenuItem("Tools/BuildAssetBuldels")] static void BuildAllAssetBundles() { //判断有没有这个目录,没有的话就创建一个目录 string dir = "AssesBundles

打包设置

首先代码打包AB很简单,我们把它放在我们项目工程的根目录下

using UnityEditor;

using System.IO;

public class CreateAssetBundles

{

[MenuItem("Tools/BuildAssetBuldels")]

static void BuildAllAssetBundles()

{

//判断有没有这个目录,没有的话就创建一个目录

string dir = "AssesBundles";

if (Directory.Exists(dir) == false)

{

Directory.CreateDirectory(dir);

}

//打包AB包代码

//BuildAssetBundleOptions.None选择哪种压缩方式None的包体相对较小,第一次解压需花费较长时间

//BuildTarget.StandaloneWindows64这个需要根据需求旋转不同的平台

BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);

}

}

在Unity里面,我们需要讲我们要打包的资源进行一些AssetBundle的设置

08a2933a05c5c80b5e52420d98ac0e7f.png

默认情况下,这里为null,我们直接点击之后选择“New”,新建一个包的种类

示例:公用资源 share,然后想创建一些子目录可以scene\wall

e759ef63431a21f4ee1cbee7f34564c8.png

这个后缀可以随意设置,一般都是ab,unity3d之类的

从包中加载资源

从上面设置的根目录加载

void Start(){

//从根目录里面加载ab包,这里需要加后缀

AssetBundle shareAb = AssetBundle.LoadFromFile("AssesBundles/share.unity3d");

AssetBundle ab = AssetBundle.LoadFromFile("AssesBundles/scene/prefab.unity3d");

//把取到的资源生成到我们的场景,这里不需要后缀

GameObject cube = ab.LoadAsset("Cube");

Instantiate(cube);

}

通过WWW加载

IEnumerator Start(){

while (!Caching.ready)

{

yield return null;

}

//本地绝对路径

WWW www = WWW.LoadFromCacheOrDownload(@"file:///E:\WebProgram\AssesBundles\scene\prefab.unity3d", 1);

//服务器

//WWW www = WWW.LoadFromCacheOrDownload(@"http://192.168.0.191/AssesBundles/scene/prefab.unity3d", 1);

yield return www;

if (!string.IsNullOrEmpty(www.error))

{

Debug.Log(www.error);

yield break;

}

var ab = www.assetBundle;

}

使用官方推荐的加载方式

IEnumerator Start(){

//通过UnityEngine.Networking.UnityWebRequest

//string uri = @"file:///E:\WebProgram\AssesBundles\scene\prefab.unity3d ";

string uri = @"http://192.168.0.191/AssesBundles/scene/prefab.unity3d";

var request = UnityWebRequest.GetAssetBundle(uri);

yield return request.SendWebRequest();

//var ab = DownloadHandlerAssetBundle.GetContent(request);

var ab = (request.downloadHandler as DownloadHandlerAssetBundle).assetBundle;

//把加载到的prefab资源都生成

var objs = ab.LoadAllAssets();

foreach (var item in objs)

{

Instantiate(item);

}

}

本文地址:https://blog.csdn.net/Liu_ChangC/article/details/107318904

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。

如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

相关文章:

gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg

前几天使用layer.msg设置时间后发现不起作用,这里记录一下。 开始出错误的代码: 后面查看文档后得知调用layer.msg后如果有后续操作需要...

gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg

HTML5画图发现里面画矩形的函数画出来的边框出现了样式不一致的问题,下面把解决问题的思路分享给大家,感兴趣的朋友不要错过... 13-10-14

这篇文章主要介绍了HTML5离线缓存Manifest是什么,为大家解答什么是HTML5离线缓存Manifest,其作用是什么,感兴趣的小伙伴们可以参考一下......

收集总结的HTML5的新特性,基本除了IE9以下都可以使用。这篇文章给大家介绍了HTML5新增的标签和属性归纳总结,需要的朋友参考下吧... 18-05-02

gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg

这篇文章主要介绍了用HTML5制作视频拼图的教程,主要用到了HTML5的Canvas API,需要的朋友可以参考下... 15-05-13

[html]

package WildCat.Xml.Dom;

import java.io.File;&n...

标签的定义 声明位于文档中最前面的位置,处于标签之前。&l...

这篇文章主要介绍了利用三角函数在canvas上画虚线的方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧... 18-0...

微信客户端在打开小程序之前,会把整个小程序的代码包下载到本地。 紧接着通过 app.json 的 pages 字段就可以知道你当前小程序的所有页面路...

效果

网友评论

pichead_null.gif

验证码:

625529.html

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值