初始化(InitLIP)
注意
建议在游戏启动时调用 InitLIP 初始化 LI PASS。
函数定义
UFUNCTION(BlueprintCallable, Category = "LevelInfinite")
static int InitLIP(UGameInstance* instance, const FString& appVersion = "appVersion", const FString& langType = "en");
注意
从 LI PASS V1.28.00 开始,入参 appVersion 为选填,默认值为 "appVersion"。如果业务不传入 appVersion 或传入 appVersion="appVersion",LI PASS 将自动处理相关逻辑。
初始化 LI PASS 分别为下面的几个步骤:
- 获取热更版本信息
- 下载新版资源
- 加载资源
- 加载完成后,触发 LI PASS 事件回调(LIEventObserver) 的 GN_READY 事件
注意
GN_READY 事件在网络异常情况下的回调超时反馈时间是 60s*3。游戏可在初始化后直接调用 自动登录(AutoLogin)、打开登录面板(OpenLoginPanel) 或 登录并拉起 LI PASS 绑定界面(LoginChannelWithLIPass) 给予玩家及时的响应,无需等待GN_READY 事件。
获取热更版本信息
请求信息
可以搜索 gnconfig 定位到请求 URL:
2023-06-08 09:54:20.948 25151-26800 INTL                    com.intlgame.demo                    I  [INTL][1806][A.I.A][2023-06-08 09:54:20.948][25151, 26800, 539607522480][ (intl_http_manager.cpp:328) OnHTTPClientCallBack] : 
[http] request url : https://test-vas.intlgame.com/v2/gnconfig/acquire_config?area_id=0&channelid=131&gameid=11&openid=FFFFFFFFFFFFFF&os=1&sdk_version=1.3.00&seq=11-7a08fc1d06ea8e62b6ea3e626ed61c8f2398c981bc6d8d0dfa30681a3d05616e-1686189260-717&source=37&token=&ts=1686189260&sig=6dc2bb8968cfe28fab5138e2342f327d , 
响应信息
警告
如 LI PASS 表现未符合预期,请检查热更版本信息,确认是否运行正确的资源。
如果匹配到规则,可以搜索 rule_id 定位到响应信息:
response_body : {
    "ret":0,
    "msg":"",
    "rule_id":"1063",
    "resource_list":"[{\"dependency\":[],\"file_list\":[{\"md5\":\"968F1A3E16AB6041F504E29DEFB348DD\",\"size\":1747648,\"url\":\"https://sg-gamenative001-1300342648.file.myqcloud.com/gamenative-files/11/LI_107_UE_Android/1686187421509627102/LevelInfinite_Android.pak\"}],\"is_public\":0,\"name\":\"LI_107_UE_Android\"}]",
    "sdk_enable":1,
    "sdk_debug_enable":1,
    "report_log_enable":1,
    "log_level":1,
    "inner_seq":"ac097e19-772b-4069-948d-78e21821ac15",
    "seq":"11-7a08fc1d06ea8e62b6ea3e626ed61c8f2398c981bc6d8d0dfa30681a3d05616e-1686189260-717"
    }
如果未匹配到规则:
response_body : {
    "ret":23111202,
    "msg":"no matched config error( [match logic]no match )",
    "rule_id":"",
    "resource_list":"",
    "sdk_enable":0,
    "sdk_debug_enable":0,
    "report_log_enable":0,
    "log_level":0,
    "inner_seq":"ca3fa94a-0be7-4325-aa90-a5bc36d7c502",
    "seq":"11-7a08fc1d06ea8e62b6ea3e626ed61c8f2398c981bc6d8d0dfa30681a3d05616e-1686189018-705"
    }
入参说明
| 参数 | 类型 | 说明 | 备注 | 
|---|---|---|---|
| instance | UGameInstance | UE GameInstance | 必填 | 
| appVersion | string | 游戏版本号,不能带空格 | LI PASS V1.28.00 及以上: 选填,默认值:"appVersion" LI PASS V1.28.00 以下: 必填 | 
| langType | string | LI PASS UI 显示语言 | 选填,默认值:"en" | 
代码示例
FString Version = "appVersion";
ULevelInfiniteAPI::InitLIP(GetGameInstance<UGameInstance>(), Version, TEXT("en"));