Unity 使用 Addressable Asset 配合阿里云实现资源远程托管

1,601 阅读2分钟

在包管理器中安装 Addressable 导入一个模型,标记为Addressable资源 打开Addressable Profiles窗口 创建一个配置 将远程服务器地址更改为服务器的地址 打开Addressable Groups窗口 在这里插入图片描述 将配置项切换为刚刚添加的Aliyun 在这里插入图片描述 建立一个组 这里更名为 Remote Group 右键该组,选择 Inspect Group Settings 将 Build Path 和 Load Path 设置为 RemoteBuildPath和RemoteLoadPath

如果希望该组打包后的资源文件是分开的话,可以该组的检查器面板中设置Bundle Mode 为 Pack Separately 在这里插入图片描述 点击检查器面板中的Inspect Top Level Settings,将 Build Remote Catalog 勾选,然后将Build Path和Load Path设置为RemoteBuildPath和RemoteLoadPath 在这里插入图片描述 回到Addressables Groups窗口,将刚刚的模型拖到 Remote Group 组中 在这里插入图片描述 将Player Mode Script切换到第三项 开始编译资源 编译完成后,项目文件中会增加一个文件夹,即刚刚 Build Path 设置的文件夹 在这里插入图片描述 选择分开打包模式重新打包后,该组的资源在一个文件夹(remotegroup_assets_assets)中 在这里插入图片描述 将 ServerData\StandaloneWindows 中的所有文件上传到服务器中 编写程序,在游戏运行后加载一个资源

public class GameManager : MonoBehaviour
{
    public AssetReference asset;
 
    void Start()
    {
        asset.InstantiateAsync();
    }
}

选择刚刚标记的模型 进入游戏后, Addressable Asset系统会自动检查该模型在本地是否存在最新版,如果本地没有该模型或者是旧版则会下载该模型,在下载完成后加载到场景中。 在这里插入图片描述 随便更改一下资源,重新Build后上传到服务器然后来测试一下客户端是否能正常更新 在这里插入图片描述 然后回到 Addressable Groups 窗口,点击Build-Update a Previous Build 然后会弹出一个文件选择框,选中项目文件夹\Library\com.unity.addressables\StreamingAssetsCopy\Windows中的addressables_content_state.bin文件 在这里插入图片描述 重新编译后,更新到服务器上,再打开游戏,可以看到资源被正常重新下载了。 抛砖引玉,有请批评指正。 此文仅讲叙配置资源远程托管流程,有关Addressable的具体说明请看Addressable官方文档。

参考:

  1. tomcat: tomcat.apache.org/
  2. Addressable 1.3 版本文档 docs.unity3d.com/Packages/co…