赞
踩
在Asset下创建Editor文件夹
然后创建脚本CreateAssetBundle内容
using UnityEditor; using UnityEditor.Experimental.UIElements.GraphView; using System.IO; public class CreateAssetBundle { [MenuItem("Assets/Build AssetBundle")] static void BuildAllAssetBundles() { string dir = "AssetBundles"; if (Directory.Exists(dir) == false) { Directory.CreateDirectory(dir); } BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.ChunkBasedCompression, BuildTarget.WebGL); } }
核心代码:BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.ChunkBasedCompression, BuildTarget.WebGL);
第一个参数是保存的地址,第二个是压缩的格式,第三个是发布的平台
特别重要的是: 第二个参数 压缩的格式设置 webgl 最好设置ChunkBasedCompression格式 不然设置的Assebundle资源无法解析!!!
忘了说怎么设置需要打包的Assetbundle了
下面关于AssetBundle的资源的设置
选择预设体或者图片素材相关资源时 右下角会出现
这里可以设置导出的AssetBundle的名称,和类型(即后缀)
对于后缀的设置之后 需要在服务器 ISS服务器中配置 否则服务器无法识别该资源
配置步骤打开控制面板
然后选择小图标 再选择管理工具
然后再选择IIS管理器
然后选择自己设置的web 再选择MIME类型
然后 选择添加 文件扩展名为刚刚导出AssetBundle的后缀名,MIME类型为 application/octet-stream
然后点击确定 服务器就可以识别了 (注意的是 我这里用的是本地服务器,外网服务器也一样设置)
关于服务器的配置 可以搜搜 如何将主机设置成ISS服务器 会有很多教程
鼠标右击选择Show in Explorer
将会看到生成的AssetBundles文件夹 其中生成了assetbundle的资源
(我这里只说服务器的调用方式,这种方式 鄙人遇到了不少的坑 记忆犹新)
使用方法****UnityWebRequest
代码如下:
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Networking; public class Load : MonoBehaviour { //用于刚开始的加载 public string allposition= "http://39.97.223.160:80/AssetBundles/all.unity3d"; // 这里为服务器的加载地址,将刚刚的AssetBundle资源放入到该地址下就可引用 IEnumerator Start () { UnityWebRequest request1 = UnityWebRequestAssetBundle.GetAssetBundle(allposition);//请求资源 yield return request1.SendWebRequest(); AssetBundle ab = DownloadHandlerAssetBundle.GetContent(request1); //解析资源 GameObject allPre = ab.LoadAsset<GameObject>("All"); //下载资源 Instantiate(allPre); //实例化资源 }
将其挂在场景物体上即可即可使用
对于外网服务器的配置 我这里用的是阿里云 Windows Server2012R2
后续步骤一样 就不说了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。