Addressables
GES 核心不依赖 Addressables,安装受支持的 com.unity.addressables 包后会自动启用可选的 TinyGiants.GES.Addressables 程序集
using TinyGiants.GES.Addressables;
GameEventAddressables.LoadDatabaseAsync(
"events/combat",
lease =>
{
GameEventBase started = lease.GetEvent("internal-event-guid");
// 当前模块使用数据库期间保留 lease
},
exception => Debug.LogException(exception));
对同一个 key 的并发请求会共享一次加载,每个成功请求各自持有一个 lease;在最后一个 lease 被释放前,数据库会持续注册在 GameEventManager 中,最后一个 lease 释放后,GES 会注销数据库并释放 Addressables handle
释放数据库 lease 后不要继续持有其中的事件;同时加载的多个数据库如果包含重复的内部事件 GUID,应当将其视为内容错误并在发布前解决