在包管理器中安装 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: http://tomcat.apache.org/
- Addressable 1.3 版本文档 https://docs.unity3d.com/Packages/com.unity.addressables@1.3/manual/index.html