• 集成SDK后可以直接出 PC 版本的游戏包,包括 WindowsMacOS 系统;
  • 目前 PC 版本 SDK 是基于 H5 做的 UI载体;
  • 需要通过回调方式在 UE4 层显示特定界面;

以下介绍一些需要特殊处理的事项。

# 1 初始化

# 1.1 渠道初始化参数配置

# 1.2 添加初始化回调,展示协议界面

根据国内监管要求,需要玩家阅读并同意用户协议后才能进入游戏。

PC端的协议界面展示流程如下:

  1. {场景}.h 文件声明对象属性:

  2. 在场景蓝图中给属性赋初始值,如图:

  3. SetInitCallback回调中根据需要展示协议界面

    
    #if PLATFORM_MAC || PLATFORM_WINDOWS
        
        // SDK初始化成功后触发
        HeroUsdkSupportPcDelegate::GetInstance()->SetInitCallback([this](bool bShowProtocol){
            if (bShowProtocol)
            {
                // bShowProtocol为true表示需要显示协议内容
                pw = CreateWidget<UPC_ProtocolPannel>(this,prlWid);
                pw->AddToViewport();
            }
        });
    
    #endif
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

注意:

  • SetInitCallback方法必须在init方法之前调用,否则会出现回调方法不执行

# 2 登录

# 2.1 添加登录回调,打开登录界面

  1. {场景}.h 文件声明对象属性:

    UPROPERTY(EditAnywhere,BlueprintReadWrite)
    TSubclassOf<UPC_LoginPannel> loginWid;
        
    UPROPERTY(EditAnywhere,BlueprintReadWrite)
    UPC_LoginPannel* loginW;
    
    1
    2
    3
    4
    5
  2. 在场景蓝图中给属性赋初始值,参考前文1.1:

  3. 设置回调并打开登录界面,示例如下:

    #if PLATFORM_MAC || PLATFORM_WINDOWS
        HeroUsdkSupportPcDelegate::GetInstance()->SetLoginCallback([this]()
        {
            loginW = CreateWidget<UPC_LoginPannel>(this,loginWid);
            loginW->AddToViewport();
        });
    #endif
    
    1
    2
    3
    4
    5
    6
    7

备注:

  • 游戏需要管理对象,避免重复显示多个登录界面;
  • SetLoginCallback方法必须在login方法之前调用,否则会出现回调方法不执行

# 3 支付

# 3.1 添加支付回调,展示支付界面

  1. {场景}.h文件声明对象属性

    UPROPERTY(EditAnywhere,BlueprintReadWrite)
    TSubclassOf<UPC_PayPannel> payWid;
    
    UPROPERTY(EditAnywhere,BlueprintReadWrite)
    UPC_PayPannel* payW;
    
    1
    2
    3
    4
    5
  2. 在场景蓝图中给属性赋初始值,参考 1.1

  3. SetPayCallback回调中显示支付界面,如下代码:

    #if PLATFORM_MAC || PLATFORM_WINDOWS
        //PC内购
        HeroUsdkSupportPcDelegate::GetInstance()->SetPayCallback([this](bool bWasSuccessful)
        {
            if (bWasSuccessful)
            {
                payW = CreateWidget<UPC_PayPannel>(this,payWid);
                payW->AddToViewport();
            }
        });
    #endif
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

备注:

  • 游戏需要管理对象,避免重复显示多个支付界面;
  • SetPayCallback方法必须在pay方法之前调用,否则会出现回调方法不执行

# 3.2 代币支付

在设置界面开启代币支付,如图。 代币申请请联系运营同学。

# 4 防沉迷

# 4.1 PC端设置防沉迷强制下线回调

场景介绍

  1. 根据政策要求,游戏必须接入「防沉迷强制下线」流程;
  2. 触发防沉迷后,会通过该接口将通知玩家下线;
  3. CP需实现此接口,并自定义界面显示文本;
  4. PC防沉迷已与移动端保持一致,

调用方法

virtual void usdk_onLoginInvalid(const FString& msg) = 0;
1

调用示例

HeroUsdkSupportKit::GetInstance().NotifyObject->usdk_onLoginInvalid(AntiMsg);
1
本文档对解决你的问题有所帮助?