Unity部署至WebGL平台之AssetBundle加载

AssetBundle加载功能

(1)导入制作好的model模型,制作成prefab,小提示:需要将Modle的Rig属性设置为none,因为后面进行AB包加载的时候发现,带有动画属性的包,没有办法加载出来。

(2)导入官方免费打包助手 Asset Bundle Manager,没有此插件的并且不会下载的,评论区留邮箱,我会抽空发到您邮箱。

(3)如下图所示,点击build完成打包,相关的属性设置可以根据自己的需求来修改,平台一定要选WebGL.

(4)编写加载模块代码

    /// <summary>
    /// 下载地址
    /// </summary>
    public string strABUrl = @"http://127.0.0.1:7099/WebGL/";

    void Start()
    {
        //bundleNameList就是预设的名称列表,可以通过配置文件读取,也可以手动实例化,看你自己了
        for (int i = 0; i < bundleNameList.Count; i++)
        {
            StartCoroutine(DownloadBundleCoroutine(DoShowObj,
                strABUrl + bundleNameList[i] + ".unity3d", bundleNameList[i]));
        }
    }
    
    public IEnumerator DownloadBundleCoroutine(Action<GameObject> modelFound, string url, string modelName)
    {
        AssetBundle bundle = null;
        UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(url);
        request.SendWebRequest();
        while (!request.isDone)
        {
            Invoke(modelName, request.downloadProgress);
            yield return null;
        }

        bundle = DownloadHandlerAssetBundle.GetContent(request);
        GameObject model = null;
        if (bundle != null)
        {
            AssetBundleRequest newRequest = bundle.LoadAssetAsync<GameObject>(modelName);
            while (!newRequest.isDone)
            {
                Debug.Log("Loading");
                yield return null;
            }
            model = (GameObject)newRequest.asset;
        }
        modelFound(model);

        bundle.Unload(false);
        yield return null;
    }


    private void DoShowObj(GameObject go)
    {
        Instantiate(go);
    }

编写完成后,将此脚本挂载到场景中任意一个组件对象身上。

(5)打包,将打包文件部署到IIS服务器上,AB包的打包路径不是设置的IIS服务器路径,也请把资源放到服务器。

(6)输入IP访问自己的资源,查看加载是否完成。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
Unity Addressables 在 WebGL 平台加载缓慢的原因有多个方面。 首先,WebGL 平台是基于浏览器的运行环境,相比于本地平台,存在网络传输和解析字节码的延迟。这会导致加载和解析资源的时间增加,从而使 Unity Addressables 的加载速度变慢。 其次,WebGL 平台受到浏览器的安全限制和网络环境的影响,可能会导致网络通信速度减慢。尤其是当需要从远程服务器获取资源时,网络延迟和带宽限制可能会增加资源加载的时间。 此外,WebGL 平台的硬件设备和浏览器版本碎片化也会影响 Addressables 的加载速度。不同的硬件设备和浏览器版本对于资源的加载和渲染效率可能有所差异,因此可能需要额外的适配和优化工作。 为了缓解 Unity Addressables 在 WebGL 平台加载缓慢问题,可以考虑以下几个方面的优化: 1. 减少资源的大小和数量,避免不必要的资源加载和解析时间。 2. 使用压缩格式的资源,以减小资源文件的大小,并加快网络传输速度。 3. 尽量避免远程加载资源,可以将资源预先打包到 WebGL 构建中,减少网络传输时间。 4. 在资源加载之前,展示加载中的提示信息或动画,让用户意识到加载需要一定的时间,提高用户体验。 5. 针对 WebGL 平台进行性能优化,如使用适当的渲染技术、减少渲染批次等,提高整体性能。 需要注意的是,不同的项目和情况可能需要针对性的优化方法,可以综合考虑以上建议并结合具体情况进行优化工作,以提高 Unity Addressables 在 WebGL 平台加载速度。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瓜皮肖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值