更新日期:2025年 12月 26日PC游戏UE版接入文档
<h3>
<span style="font-size:16px;line-height:2;">概述</span>
</h3>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;">适⽤范围:Unreal Engine 4.x / 5.x</span>
</p>
<p>
<span style="font-size:14px;line-height:2;">插件名称:QuickSDK</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h3>
<span style="font-size:16px;line-height:2;">1. 前置要求</span>
</h3>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">项⽬可正常编译/打包</span><br />
<p>
<span style="font-size:14px;line-height:2;">已获取 QuickSDK 插件包(通常为 QuickSDK ⽂件夹,包含 QuickSDK.uplugin )</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h3>
<span style="font-size:16px;line-height:2;">2. 安装插件</span>
</h3>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;">将插件⽬录复制到项⽬路径</span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><img src="https://staticsite.quickapi.net/data/newFiles/20251226/202512261900066bPt525.png" alt="" /><br />
</span>
</p>
<p>
<br />
</p>
<p>
<span style="font-size:14px;">确认路径下存在</span>
</p>
<p>
<span style="font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20251226/20251226190019UlhV895.png" alt="" /><br />
</span>
</p>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h3>
<span style="font-size:16px;line-height:2;">3. 启⽤插件</span>
</h3>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">1、打开 UE 编辑器</span><br />
<span style="font-size:14px;line-height:2;">2、菜单:Edit → Plugins</span><br />
<span style="font-size:14px;line-height:2;">3、搜索 QuickSDK</span><br />
<span style="font-size:14px;line-height:2;">4、勾选启⽤(Enable)</span><br />
<span style="font-size:14px;line-height:2;">5、按提⽰重启编辑器(如需要)</span><br />
<span style="font-size:14px;line-height:2;">如果项⽬是 C++ 项⽬,或插件包含 C++ 模块,⾸次启⽤可能触发编译</span><br />
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h3>
<span style="font-size:16px;line-height:2;">4. 项⽬配置</span>
</h3>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;"><span style="line-height:2;">QuickSDK 插件导⼊成功并启⽤后,会在 </span><span style="color:#000000;line-height:2;"><strong>Project Settings</strong></span><span style="line-height:2;"> 中创建⼀个新的设置项</span></span><br />
<span style="font-size:14px;line-height:2;">菜单:Edit → Project Settings</span><br />
<span style="font-size:14px;line-height:2;">找到:QuickSDK(通常在左侧分类列表中)</span><br />
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;">你需要在此处配置两个参数:</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><strong>4.1 BaseUrl</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">含义:QuickSDK服务的API地址(Base URL)</span><br />
<span style="font-size:14px;line-height:2;">⽰例:</span><br />
<span style="font-size:14px;"><span style="line-height:2;">https://api.example.com</span><span style="line-height:2;"> </span></span><br />
<span style="font-size:14px;line-height:2;">要求:</span><br />
<p>
<span style="font-size:14px;line-height:2;">不建议以 / 结尾(若插件内部会拼接路径,避免出现 // )</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><strong>4.2 ProductCode</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;">含义:sdk后台创建的产品Code</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><strong>4.3 Show xxxx Close Button</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><span style="line-height:2;">含义:是否在相关界⾯右上⻆显示关闭按钮,勾选表示显</span><span style="white-space:normal;font-size:14px;line-height:2;">示</span></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;">其他参数是可选配置,保持默认即可</span>
</p>
<p>
<span style="font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20251226/20251226180421PqHA387.png" alt="" /><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h3>
<span style="font-size:16px;line-height:2;">5. 对外 API 总览(Blueprint)</span>
</h3>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;">QuickSDK 对外暴露的全部⽅法如下(均位于 UQuickSDKBlueprintLibrary )</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;"><span style="line-height:2;">SetSDKEventListener(UObject* ListenerObject) (</span><span style="color:#E53333;line-height:2;"><strong>必须优先调⽤</strong></span><span style="line-height:2;">)</span></span><br />
<span style="font-size:14px;line-height:2;">InitSDK()</span><br />
<span style="font-size:14px;line-height:2;">Login(UObject* WorldContextObject)</span><br />
<span style="font-size:14px;line-height:2;">Pay(UObject* WorldContextObject, const FSDKOrderInfo& OrderInfo, const FSDKRoleInfo&</span><br />
<span style="font-size:14px;line-height:2;">RoleInfo)</span><br />
<span style="font-size:14px;line-height:2;">UserCenter(UObject* WorldContextObject)</span><br />
<span style="font-size:14px;line-height:2;">Logout()</span><br />
<span style="font-size:14px;line-height:2;">UpdateRole(const FSDKRoleInfo& RoleInfo)</span><br />
<p>
<span style="font-size:14px;line-height:2;">GetUser() → FSDKUserInfo</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h3>
<span style="font-size:16px;line-height:2;">6. 推荐接⼊顺序</span>
</h3>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;color:#E53333;line-height:2;"><strong>强制要求:在调⽤其他 SDK ⽅法之前,必须先调⽤ SetSDKEventListener 设置监听对象,⽤于接收 SDK 回调</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;">推荐调⽤流程:</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">1、游戏启动/初始化阶段:</span><br />
<span style="font-size:14px;line-height:2;">SetSDKEventListener(ListenerObject)</span><br />
<p>
<span style="font-size:14px;line-height:2;">InitSDK()</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">2、玩家点击“登录”按钮</span><br />
<p>
<span style="font-size:14px;line-height:2;">Login(WorldContextObject)</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;">3、登录成功后/进⼊游戏后(或⻆⾊升级时)</span>
</p>
<p>
<span style="font-size:14px;line-height:2;">UpdateRole(RoleInfo) (可多次调⽤,上报⻆⾊变更)</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">4、玩家进⼊“用户中心”</span><br />
<p>
<span style="font-size:14px;line-height:2;">UserCenter(WorldContextObject)</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">5、玩家购买/充值</span><br />
<p>
<span style="font-size:14px;line-height:2;">Pay(WorldContextObject, OrderInfo, RoleInfo)</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">6、玩家退出登录</span><br />
<p>
<span style="font-size:14px;line-height:2;">Logout()</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">7、获取当前用户(已登录时</span><br />
<p>
<span style="font-size:14px;line-height:2;">GetUser() (若已登录成功,返回当前用户信息)</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h3>
<span style="font-size:16px;line-height:2;">7. ⽅法详细说明</span>
</h3>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><span style="line-height:2;"><strong>7.1 SetSDKEventListener(</strong></span><span style="color:#E53333;line-height:2;"><strong>必须最先调⽤</strong></span><span style="line-height:2;"><strong>)</strong></span></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">函数: SetSDKEventListener(UObject* ListenerObject)</span><br />
<span style="font-size:14px;line-height:2;">用途: 设置 SDK 事件监听对象,⽤于接收 QuickSDK 的各类回调(初始化/登录/⽀付/登出等)</span><br />
<span style="font-size:14px;line-height:2;">调⽤时机: 必须在 InitSDK/Login/Pay/UserCenter/Logout/UpdateRole/GetUser 等其他⽅法前调⽤⼀次</span><br />
<span style="font-size:14px;line-height:2;">参数:</span><br />
<span style="font-size:14px;line-height:2;">ListenerObject :⼀个 UObject 实例(通常建议为 GameInstance、Subsystem、或常驻 Manager 对象),</span><span style="font-size:14px;line-height:2;">⽤于承载回调接收逻辑</span><br />
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;color:#E53333;"><strong>建议:</strong></span>
</p>
<span style="font-size:14px;line-height:2;">ListenerObject 必须在游戏⽣命周期内保持有效(避免被 GC 回收)</span><br />
<p>
<span style="font-size:14px;line-height:2;">建议在 GameInstance 初始化时设置⼀次即可</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><strong>7.2 InitSDK</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">函数: InitSDK()</span><br />
<span style="font-size:14px;line-height:2;">⽤途: 初始化 QuickSDK</span><br />
<p>
<span style="font-size:14px;line-height:2;">调⽤时机: SetSDKEventListener 之后,在游戏启动阶段调⽤⼀次</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;color:#E53333;line-height:2;"><strong>注意:</strong></span><br />
<p>
<span style="font-size:14px;line-height:2;">初始化成功/失败的结果通常通过事件回调返回(由 ListenerObject 接收)</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><strong>7.3 Login</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">函数: Login(UObject* WorldContextObject)</span><br />
<span style="font-size:14px;line-height:2;">⽤途: 拉起登录流程</span><br />
<span style="font-size:14px;line-height:2;">调⽤时机: 玩家点击登录按钮时调⽤</span><br />
<span style="font-size:14px;line-height:2;">参数:</span><br />
<span style="font-size:14px;line-height:2;">WorldContextObject :世界上下⽂对象(通常传⼊ Widget、PlayerController、GameInstance 等可提供世界</span><span style="font-size:14px;line-height:2;">上下⽂的对象)</span><br />
<span style="font-size:14px;line-height:2;">结果:</span><br />
<span style="font-size:14px;line-height:2;">登录成功/取消/失败通过 SDK 回调通知(ListenerObject 接收)</span><br />
<p>
<span style="font-size:14px;line-height:2;">登录成功后,可使⽤ GetUser() 获取当前⽤⼾信息</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><strong>7.4 GetUser</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">函数: FSDKUserInfo GetUser()</span><br />
<span style="font-size:14px;line-height:2;">⽤途: 获取当前已登录的⽤⼾信息</span><br />
<span style="font-size:14px;line-height:2;">说明:</span><br />
<span style="font-size:14px;line-height:2;">如果已经登录成功,会返回当前的⽤⼾信息( FSDKUserInfo )</span><br />
<span style="font-size:14px;line-height:2;">若未登录/⽆有效⽤⼾,返回值内容取决于插件实现(可能为空结构或默认值)</span><br />
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;">推荐⽤法:</span>
</p>
<span style="font-size:14px;line-height:2;">登录成功回调中调⽤⼀次,缓存⽤⼾信息到你的游戏账号系统</span><br />
<p>
<span style="font-size:14px;line-height:2;">需要展⽰⽤⼾信息时再次调⽤</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><strong>7.5 Pay</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">函数:</span><br />
<span style="font-size:14px;line-height:2;">Pay(UObject* WorldContextObject, const FSDKOrderInfo& OrderInfo, const FSDKRoleInfo& RoleInfo)</span><br />
<span style="font-size:14px;line-height:2;">⽤途: 发起⽀付/下单流程</span><br />
<span style="font-size:14px;line-height:2;">调⽤时机: 玩家在商店确认购买时调⽤</span><br />
<span style="font-size:14px;line-height:2;">参数:</span><br />
<p>
<span style="font-size:14px;line-height:2;">WorldContextObject :世界上下⽂对象(同 Login/UserCenter)</span>
</p>
<p>
<span style="font-size:14px;"><span style="white-space:normal;font-size:14px;line-height:2;">OrderInfo( FSDKOrderInfo ):订单信息(商品、订单号、⾦额等,字段以 QuickSDKTypes.h 定义为准)</span><br style="white-space:normal;" />
<span style="white-space:normal;font-size:14px;line-height:2;">RoleInfo( FSDKRoleInfo ):⻆⾊信息(区服、⻆⾊名、等级等,字段以 QuickSDKTypes.h 定义为准)</span><br />
</span>
</p>
<p>
<span style="font-size:14px;"><span style="white-space:normal;font-size:14px;"><br />
</span></span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><span style="white-space:normal;font-size:14px;line-height:2;"><span style="white-space:normal;font-size:14px;line-height:2;">FSDKOrderInfo</span></span></span>
</p>
<p>
<span style="font-size:14px;"><span style="white-space:normal;font-size:14px;">
<table style="width:1000px;" cellpadding="2" cellspacing="0" border="1" bordercolor="#000000">
<tbody>
<tr>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">字段</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">类型</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">必要性</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">说明</span><br />
</td>
</tr>
<tr>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">Goo</span><span style="white-space:normal;font-size:14px;line-height:2;">dsID</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">stri</span><span style="white-space:normal;font-size:14px;line-height:2;">ng</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">必传</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">商品 ID,⽤来识别购买的产品</span><br />
</td>
</tr>
<tr>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">GoodsNa</span><span style="white-space:normal;font-size:14px;line-height:2;">me</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">st</span><span style="white-space:normal;font-size:14px;line-height:2;">ring</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">必传</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">商品名称</span><br />
</td>
</tr>
<tr>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">Goo</span><span style="white-space:normal;font-size:14px;line-height:2;">dsDesc</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">stri</span><span style="white-space:normal;font-size:14px;line-height:2;">ng</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">必传</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">商品描述</span><br />
</td>
</tr>
<tr>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">Amo</span><span style="white-space:normal;font-size:14px;line-height:2;">unt</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">do</span><span style="white-space:normal;font-size:14px;line-height:2;">uble</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">必传</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">⽀付⾦额,单位元</span><br />
</td>
</tr>
<tr>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">CpOrd</span><span style="white-space:normal;font-size:14px;line-height:2;">erID</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">st</span><span style="white-space:normal;font-size:14px;line-height:2;">ring</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">必传</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">游戏方的订单号</span><br />
</td>
</tr>
<tr>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">ExtrasP</span><span style="white-space:normal;font-size:14px;line-height:2;">arams</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">str</span><span style="white-space:normal;font-size:14px;line-height:2;">ing</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">选传</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">透传参数</span><span style="line-height:2;">(</span><span style="white-space:normal;font-size:14px;color:#E53333;line-height:2;"><strong>请勿传特殊符号,如果⽆法避免建议进⾏ base64 编码</strong></span><span style="line-height:2;">)</span><br />
</td>
</tr>
<tr>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">CallBac</span><span style="white-space:normal;font-size:14px;line-height:2;">kUrl</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">str</span><span style="white-space:normal;font-size:14px;line-height:2;">ing</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">选传</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;"><span style="line-height:2;">⽀付回调地址(</span><span style="white-space:normal;font-size:14px;line-height:2;">可选参数,可配置在后台;优先读取前端传的回调地址</span><span style="white-space:normal;"></span><span style="line-height:2;">)</span></span><br />
</td>
</tr>
</tbody>
</table>
<br />
<span style="white-space:normal;font-size:14px;line-height:2;">FSDKRoleI</span><span style="white-space:normal;font-size:14px;line-height:2;">nfo</span></span></span>
</p>
<p>
<span style="font-size:14px;"><span style="white-space:normal;font-size:14px;">
<table style="width:1000px;" cellpadding="2" cellspacing="0" border="1" bordercolor="#000000">
<tbody>
<tr>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">字段</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">类</span><span style="white-space:normal;font-size:14px;line-height:2;">型</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">必要性</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">说明</span><br />
</td>
</tr>
<tr>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">Se</span><span style="white-space:normal;font-size:14px;line-height:2;">rverId</span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">stri</span><span style="white-space:normal;font-size:14px;line-height:2;">ng</span><span style="line-height:2;"></span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">必传</span><span style="line-height:2;"></span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">服务器 ID </span><br />
</td>
</tr>
<tr>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">ServerName</span><span style="line-height:2;"></span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">string</span><span style="line-height:2;"></span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">必传</span><span style="line-height:2;"></span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">服务器名称</span><span style="line-height:2;"></span><br />
</td>
</tr>
<tr>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">RoleID</span><span style="line-height:2;"></span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">string</span><span style="line-height:2;"></span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">必传</span><span style="line-height:2;"></span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">角色ID</span><span style="line-height:2;"></span><br />
</td>
</tr>
<tr>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">RoleName</span><span style="line-height:2;"></span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">string</span><span style="line-height:2;"></span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">必传</span><span style="line-height:2;"></span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">⻆⾊名称</span><span style="line-height:2;"></span><br />
</td>
</tr>
<tr>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">RoleLevel</span><span style="line-height:2;"></span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">string</span><span style="line-height:2;"></span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">必传</span><span style="line-height:2;"></span><br />
</td>
<td>
<span style="white-space:normal;font-size:14px;line-height:2;">⻆⾊等级</span><span style="line-height:2;"></span><br />
</td>
</tr>
</tbody>
</table>
<br />
</span></span>
</p>
<br />
<p>
<span style="font-size:14px;line-height:2;"><strong>7.6 UserCenter</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">函数: UserCenter(UObject* WorldContextObject)</span><br />
<span style="font-size:14px;line-height:2;">用途: 打开用户中心界面</span><br />
<span style="font-size:14px;line-height:2;">调⽤时机: 玩家点击“用户中心/账号中心”入口时调⽤</span><br />
<span style="font-size:14px;line-height:2;">参数:</span><br />
<span style="font-size:14px;line-height:2;">WorldContextObject :世界上下⽂对象</span><br />
<p>
<br />
</p>
<p>
<br />
</p>
<p>
<span style="font-size:14px;line-height:2;"><strong>7.7 Logout</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">函数: Logout()</span><br />
<span style="font-size:14px;line-height:2;">⽤途: 退出登录</span><br />
<span style="font-size:14px;line-height:2;">调⽤时机: 玩家主动登出时调⽤</span><br />
<span style="font-size:14px;line-height:2;">结果:</span><br />
<span style="font-size:14px;line-height:2;">登出结果/状态变化通常通过回调通知(ListenerObject 接收)</span><br />
<p>
<span style="font-size:14px;line-height:2;">登出后 GetUser() 通常不应再返回有效用户信息</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><strong>7.8 UpdateRole</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">函数: UpdateRole(const FSDKRoleInfo& RoleInfo)</span><br />
<span style="font-size:14px;line-height:2;">用途: 上报⻆⾊信息到 SDK 后台</span><br />
<span style="font-size:14px;line-height:2;">调⽤时机(建议):</span><br />
<span style="font-size:14px;line-height:2;">进⼊游戏/进⼊主城/⻆⾊创建完成后调⽤⼀次</span><br />
<span style="font-size:14px;line-height:2;">⻆⾊升级时再次调⽤</span><br />
<p>
<span style="font-size:14px;line-height:2;">关键属性变化(如区服切换、⻆⾊名变更)时调⽤</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">参数:</span><br />
<p>
<span style="font-size:14px;line-height:2;">FSDKRoleInfo</span>
</p>
<p>
<span style="font-size:14px;">
<table style="width:1000px;" cellpadding="2" cellspacing="0" border="1" bordercolor="#000000">
<tbody>
<tr>
<td>
<span style="font-size:14px;line-height:2;">字段</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">类型</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">必要性</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">说明</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
</tr>
<tr>
<td>
<span style="font-size:14px;line-height:2;">ServerId</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">string</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">必传</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">服务器 ID</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
</tr>
<tr>
<td>
<span style="font-size:14px;line-height:2;">ServerName</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">string</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">必传</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">服务器名称</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
</tr>
<tr>
<td>
<span style="font-size:14px;line-height:2;">RoleID</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">string</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">必传</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">角色ID</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
</tr>
<tr>
<td>
<span style="font-size:14px;line-height:2;">RoleName</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">string</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">必传</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">角色名称</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
</tr>
<tr>
<td>
<span style="font-size:14px;line-height:2;">VipLevel</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">string</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">选传</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">角色 VIP 等级</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
</tr>
<tr>
<td>
<span style="font-size:14px;line-height:2;">RoleLevel</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">string</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">必传</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">角色等级</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
</tr>
<tr>
<td>
<span style="font-size:14px;line-height:2;">PartyID</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">string</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">选传</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">帮派id</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
</tr>
<tr>
<td>
<span style="font-size:14px;line-height:2;">PartyName</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">string</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">选传</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">公会社团名称</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
</tr>
<tr>
<td>
<span style="font-size:14px;line-height:2;">RoleBalance</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">string</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">选传</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
<td>
<span style="font-size:14px;line-height:2;">角色用户余额</span><span style="font-size:14px;line-height:2;"></span><br />
</td>
</tr>
</tbody>
</table>
<br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h3>
<span style="font-size:16px;line-height:2;">8. 蓝图接⼊示例(推荐实现方式)</span>
</h3>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;">这⾥提供“接入方最容易落地”的实践:用 GameInstance(或 Subsystem)做 ListenerObject,统⼀接收回</span><span style="font-size:14px;line-height:2;">调;UI 只负责触发 Login/Pay/UserCenter 等</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><strong>8.1 初始化阶段(GameInstance)</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">在 GameInstance 蓝图的 Event Init :</span><br />
<span style="font-size:14px;line-height:2;">调⽤ SetSDKEventListener(Self)</span><br />
<p>
<span style="font-size:14px;line-height:2;">调⽤ InitSDK</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><strong>8.2 登录按钮</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">UI Widget 的登录按钮 OnClicked :</span><br />
<p>
<span style="font-size:14px;line-height:2;">调⽤ Login(Self) (或传 PlayerController 等可⽤的 WorldContextObject)</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><strong>8.3 进⼊游戏/升级上报⻆⾊</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">进⼊游戏时调⽤:</span><br />
<span style="font-size:14px;line-height:2;">UpdateRole(RoleInfo)</span><br />
<span style="font-size:14px;line-height:2;">升级时再次调⽤:</span><br />
<p>
<span style="font-size:14px;line-height:2;">UpdateRole(RoleInfo) (更新 Level 字段等)</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><strong>8.4 ⽀付按钮</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">1、组装 OrderInfo 与 RoleInfo</span><br />
<p>
<span style="font-size:14px;line-height:2;">2、调⽤ Pay(Self, OrderInfo, RoleInfo)</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><strong>8.5 用户中心与登出</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">用户中心按钮:</span><br />
<span style="font-size:14px;line-height:2;">UserCenter(Self)</span><br />
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;">登出按钮:</span>
</p>
<p>
<span style="font-size:14px;line-height:2;">Logout()</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h3>
<span style="font-size:16px;line-height:2;">9. 可选:接⼊ Steam SDK(Steamworks)</span>
</h3>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;">若项⽬不使⽤ Steam,可跳过</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><strong>9.1 资源拷贝要求</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<span style="font-size:14px;line-height:2;">QuickSDK 插件在集成 Steamworks 时,依赖 Steamworks SDK 的⽬录资源。 Steamworks ⽬录复制到以下路径:</span><br />
<span style="font-size:14px;line-height:2;">⽬标路径(QuickSDK 插件内)</span><br />
<span style="font-size:14px;line-height:2;">QuickSDKSourceThirdPartySteamworks</span><br />
<span style="font-size:14px;line-height:2;">也就是说,最终⽬录结构应类似如下(示例):</span><br />
<span style="font-size:14px;line-height:2;">YourProject/Plugins/QuickSDK/Source/ThirdParty/Steamworks/...</span><br />
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2;"><strong>9.2 测试配置</strong></span>
</p>
<span style="font-size:14px;line-height:2;">Steam测试需要在程序根⽬录创建⼀个 steam_appid.txt ⽂件,⽂件⾥⾯只写⼊steam的appId</span><br />
<div>
<br />
</div>