通知模块的回调(NoticeResultObserver)
[MSDK & Player Network SDK] 注册公告模块的回调,游戏需要注册回调函数进行处理。更多关于回调数据结构,可以查看 GUANoticeResult。
注意
强烈建议游戏在应用启动函数中进行注册。
函数定义
- Unity
- Unreal Engine
回调事件用于处理的方法列表
回调事件 | Common | [仅限 Player Network SDK] | [仅限 MSD] |
---|---|---|---|
NoticeResultEvents | 加载公告信息(LoadNoticeData) | - | - |
event OnResultHandler<GUANoticeRet> NoticeResultEvents;
回调事件用于处理的方法列表
回调事件 | Common | [仅限 Player Network SDK] | [仅限 MSD] |
---|---|---|---|
OnLoadNoticeData | 加载公告信息(LoadNoticeData) | - | - |
class GUA_EXTERN GUANoticeObserver
{
public:
virtual ~GUANoticeObserver() {};
virtual void OnLoadNoticeData(const GUANoticeResult ¬ice_result) {};
};
代码示例
- Unity
- Unreal Engine
// 增加回调
UnionAdapterAPI.GetNoticeService().NoticeResultEvents += OnNoticeResultEvent;
// 移除回调
UnionAdapterAPI.GetNoticeService().NoticeResultEvents -= OnNoticeResultEvent;
// NoticeResultEvents 的回调处理
private void OnNoticeResultEvent(GUANoticeRet noticeRet)
{
Debug.Log("OnNoticeResultEvent");
string methodTag = "";
if (noticeRet.MethodId == (int)GUAMethodID.GUA_NOTICE_REQUEST_DATA)
{
methodTag = "RequestNoticeData";
}
Debug.Log(methodTag + noticeRet.ToString());
NoticeSample noticeWindow = m_sample as NoticeSample;
if (noticeWindow != null)
{
noticeWindow.SetNoticeResult(noticeRet);
}
}
// 1.在引擎层定义继承自 GUA_NAMESPACE::GUANoticeObserver 的观察者类
// 2.实现方法名一样的回调接口(如:OnLoadNoticeData)
class FGUANoticeObserver : public GUA_NAMESPACE::GUANoticeObserver {
public:
static FGUANoticeObserver Instance;
void OnLoadNoticeData(const GUA_NAMESPACE::GUANoticeResult ¬ice_result)
{
}
};
FGUANoticeObserver FGUANoticeObserver::Instance;
// 设置回调
GUA_NAMESPACE::GUANoticeService::SetNoticeObserver(&FGUANoticeObserver::Instance);