GCloud 切换 Player Network SDK 指引
替换 SDK
首先,您需要将 GCloud MSDK 替换成 Player Network SDK。
- Unity
- Unreal Engine
移除工程中 GCloud MSDK 插件目录。
- 移除 SDK 脚本,脚本的目录:
Assets/GCloudSDK/Scripts/
目录下的MSDKCore
,MSDKBugly
,和MSDKFirebase
目录。 - 移除 Android 各个插件目录:
Assets/Plugins/Android/gcloudsdk-msdk-xxx
目录和相关的第三方插件目录。 - 移除 Android 资源文件:
Assets/Plugins/Android/assets/
目录下的MSDKConfig.ini
,MSDKRetMsg.json
,MSDKBuglyConfig.json
,msdk_permission_content.html
和msdk_policy_content.html
文件。 - R移除
Android mainTemplate.gralde
文件中有关 GCloud MSDK 的代码。 - 移除 iOS 插件目录,
Assets/Plugins/iOS/GCloudSDK/MSDKxxx
目录。
- 移除 SDK 脚本,脚本的目录:
切换 Player Network 后台服务。
移除工程中 GCloud MSDK 插件目录。
- 移除
Plugins/MSDK
目录。 - 移除工程中加载的 MSDK 代码。
PrivateDependencyModuleNames.AddRange(new string[] {"MSDKPlugin"});
- 移除
切换 Player Network 后台服务。
游戏客户端代码适配
至此已成功将 GCloud MSDK 替换成 Player Network SDK。 此部分介绍 Player Network SDK 和游戏客户端代码的适配。
适配 Player Network SDK
- Unity
- Unreal Engine
Player Network SDK 针对引擎,提供更贴心的适配和封装,在 Unity 统一的接口文件,更方便业务接入。
- 所有的接口,都在
INTLAPI.cs
文件中。 - 所有的数据结构定义,都在
INTLDefine.cs
文件中。 - 所有的错误码,都在
INTLErrorCode.cs
文件中。
业务只需关注以上三个脚本即可,无需关注内部逻辑实现。
- Player Network SDK 在接口封装上做了优化,比如接口命名更直接,登录接口中去掉了不常用
subChannel
字段等。 - Player Network SDK 优化了每个模块的回调,都以
INTLAPI.AddxxxObserver
和INTLAPI.RemovexxxObserver
的方式定义,所有的回调都在INTLAPI.cs
文件中定义。
本文以登录接口为例,展示如何进行适配。
Player Network SDK 提供了针对 Unreal Engine 的数据结构封装,游戏可直接 Unreal C++ 调用,同时 Player Network SDK 提供了蓝图接口,游戏可根据实际使用习惯选择对应接口使用。
GCloud MSDK 没有针对 Unreal Engine 做额外封装,游戏业务需要自己实现 Unreal Engine 层数据结构封装。
本文以登录接口为例,展示如何进行适配。
代码示例
- Unity
- Unreal Engine
通过 MSDK 实现登录,添加登录观察者监听,代码如下:
// 设置回调
MSDKLogin.LoginRetEvent += OnLoginRetEvent;
// 处理回调函数
private void OnLoginRetEvent(MSDKLoginRet loginRet)
{
Debug.Log ("OnLoginRetNotify in Login");
// ...
}
// 调用登录接口
MSDKLogin.Login(MSDKChannel.WeChat);
通过 Player Network SDK 实现登录,添加登录观察者监听,代码如下:
// 设置回调
INTLAPI.AddAuthResultObserver(OnAuthResultEvent);
// 处理回调函数
public void OnAuthResultEvent(INTLAuthResult ret)
{
Debug.Log ("OnAuthResultEvent in Login");
//...
}
// 调用登录接口
INTLAPI.Login(INTLChannel.Facebook);
C++ 回调
如果已经封装好 MSDK C++ 通用代码接口,可以直接使用 Player Network SDK C++ 接口。
通过 MSDK 实现登录,需要继承自 IMSDKLoginLister
的观察者监听,如以下代码:
class GameLoginListener : public IMSDKLoginListener
{
void OnLoginNotify(MSDKLoginRet &loginRet) {
UE_LOG(LogTemp, Warning, TEXT("OnLoginNotify called"));
}
void onGetAccountInfoNotify(MSDKAuthInfoRet &result) {
}
};
MSDKLogin::Login("Guest");
可以按照如下方式简单适配:
// 设置回调
TScriptInterface<IINTLPluginObserver> Observer;
Observer.SetObject(this);
Observer.SetInterface(Cast<IINTLPluginObserver>(this));
UINTLSDKAPI::AddObserver(Observer);
// 调用登录接口
UINTLSDKAPI::Login(EINTLLoginChannel::kChannelSteam);
蓝图调用
- Unity
- Unreal Engine
如果游戏采用蓝图方式,则可以很方便地使用 Player Network SDK 提供的蓝图接口。
- 蓝图设置回调
- 蓝图调用登录接口
替换后台服务
至此已成功适配游戏客户端。最后,您还需要将 GCloud 后台服务替换成 Player Network 后台服务。
由于 Player Network SDK 后台服务方式与 GCloud MSDK 相同,业务只需要切换 URL 地址。
Player Network 和 GCloud 的区别
Player Network 从整体服务的角度出发,优化了模块和接口的设计,提供更统一的服务,方便业务快速接入。
- Player Network 提供统一的服务,是真正的一个团队,一套服务。
- Player Network 针对引擎,提供更贴心的适配和封装,在 Unity 统一的接口文件,更方便业务接入。