Unity Addressable使用之服务器远程加载

发布于:2025-06-23 ⋅ 阅读:(14) ⋅ 点赞:(0)

本地模拟服务器加载

1、创建一个Profiles,将Remote设为Editor Hosted

2、在Addressables Group窗口将Profile设为Local Test

3、将某个Asset Groups设为Remote加载

4、Build资源

5、打开本地模拟服务器

Addressables Hosting 窗口是 Addressable 提供的一个内置本地服务器工具,用于在开发阶段快速测试远程资源加载功能,无需搭建外部服务器环境。

Window=>Asset Management=>Addressables=>Hosting

勾选Enable启动服务器

6、编写加载资源代码进行测试

可以在Hosting窗口看到有加载记录

成功啦!!!

远程服务器加载

操作步骤

1、搭建服务器

参考该链接搭建IIS服务器

使用IIS搭建本地Web服务器-CSDN博客

2、创建一个Profiles,将Remote设为Custom

需要自定义配置Remote.LoadPath,格式是IIS服务器的ip地址加端口号

3、在Addressables Group窗口将Profile设为Remote Test

3、将某个Asset Groups设为Remote加载

 4、在切换Profile之后最好先Clear Build Cache

4、Build资源

5、将远程打包资源复制到服务器中

找到项目根目录的ServerData文件夹,将该资源拷贝到服务器上

6、补充:如果在网页中双击.bunle文件出现

需要对.bundle文件进行MIME类型配置,否则Addressable无法访问

 7、编写加载资源代码进行测试

注意

1、Use Asset Bundle Cache启用时,下载的 Asset Bundle 会被缓存到本地存储。下次加载相同资源时可以直接从本地缓存读取,无需重新下载。在测试是否是从远程服务器加载时,可以取消勾选进行测试。

2、在切换从本地加载Profile切换到远程加载Profile时,发现资源加载还是加载旧的路。

需要在加载资源之前进行,Addressable初始化检查更新

using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.UI;

public class Test : MonoBehaviour
{
    public Image img;
   
    private void Start()
    {
        CheckForUpdates();

    }
    public async Task CheckForUpdates()
    {
        // 初始化Addressables
        await Addressables.InitializeAsync().Task;
        // 检查catalog更新
        var checkHandle = Addressables.CheckForCatalogUpdates(false);
        var catalogs = await checkHandle.Task;
        if(catalogs != null && catalogs.Count > 0)
        {
            Debug.Log($"发现{catalogs.Count}个更新");
        
            // 更新catalog
            var updateHandle = Addressables.UpdateCatalogs(catalogs);
            var locators = await updateHandle.Task;
        }
        Addressables.LoadAssetAsync<Sprite>("Assets/Icons/icon_prop_2.png").Completed += (asset) =>
        {
            img.sprite = asset.Result;
        };
    }
}

3、如果有报下图中的错误,可以尝试勾选Project Setttings=>Player=>Other Settings=>Allow downloads over HTTP

 


网站公告

今日签到

点亮在社区的每一天
去签到