UE 回调处理
AndroidiOSWindows
注册 Player Network SDK 的回调,游戏需要对回调函数进行处理;强烈建议游戏在应用启动函数中进行注册。
Update 事件
在 Unreal Engine 4 Tick 事件中添加 OnUpdate 调用以确保 Epic 的异步回调功能正常。更多信息,请参见 UpdateSDK API。
代码示例
TScriptInterface<IINTLPluginObserver> Observer;
Observer.SetObject(this);
Observer.SetInterface(Cast<IINTLPluginObserver>(this));
UINTLSDKAPI::AddObserver(Observer);
bool UINTLSDKAPI::OnTickEvent() {
return INTLWrapper::Instance()->OnUpdate();
}
设置 Player Network SDK UE 插件的回调函数
Player Network SDK 支持两种设置回调的方法:
- Unreal Engine 事件处理法:注册 IINTLObserver 类。
- C++ 事件处理法:使用 UE C++ 多播委托对象。
Unreal Engine 事件处理法 | c++ 事件处理法 |
---|---|
可用于 C++ 和蓝图 (通过 UE 事件系统) | 只可用于 C++ |
虚幻头文件分析工具 (UHT) 生成代码 | 虚幻头文件分析工具 (UHT) 不生成代码 |
注册一个超类 | 单独注册多个不同的功能 |
Unreal Engine 事件处理法示例
TScriptInterface<IINTLPluginObserver> Observer;
Observer.SetObject(this);
Observer.SetInterface(Cast<IINTLPluginObserver>(this));
UINTLSDKAPI::AddObserver(Observer);
void OnAuthResult_Implementation(FINTLAuthResult ret)
{
// ...
//Handles Login callback
if(ret.MethodId == kMethodIDAuthLogin) {
}
// ...
}
C++ 事件处理法示例
//配置回调
FINTLAuthEvent authEvent;
authEvent.AddUObject(this, &OnAuthResult_Implementation);
UINTLSDKAPI::SetAuthResultObserver(authEvent);
//清除回调
UINTLSDKAPI::GetAuthResultObserver().Clear();
设置回调
函数定义
UFUNCTION(BlueprintCallable, Category = "INTLSDKAPI")
static void AddObserver(TScriptInterface<IINTLPluginObserver> Observer);
入参说明
名称 | 类型 | 说明 |
---|---|---|
Observer | TScriptInterface<IINTLPluginObserver> | IINTLPluginObserver 实例的实现 |
代码示例
TScriptInterface<IINTLPluginObserver> Observer;
Observer.SetObject(this);
Observer.SetInterface(Cast<IINTLPluginObserver>(this));
UINTLSDKAPI::AddObserver(Observer);
移除回调
函数定义
UFUNCTION(BlueprintCallable, Category = "INTLSDKAPI")
static void RemoveObserver(TScriptInterface<IINTLPluginObserver> Observer);
入参说明
名称 | 类型 | 说明 |
---|---|---|
Observer | TScriptInterface<IINTLPluginObserver> | IINTLPluginObserver 实例的实现 |
代码示例
UINTLSDKAPI::RemoveObserver(this);