为了使用unity方便快速集成华为hms core sdk,有游戏开发者做了专业的插件,将该插件集成到unity项目中,省去了自己集成sdk的麻烦,导入后直接调用接口即可。
该插件分别支持unity 2018、2019、2020、2021版本,使用unity2018版本的使用2.0-2018分支代码,2019、2020、2021版本使用master分支代码,插件链接:https://github.com/EvilMindDevs/hms-unity-plugin
导入步骤如下:
根据本地unity版本自行选择并下载对应的.unitypackage版本,然后打开本地工程,选择 Assets> Import Package> Custom Package:
在文件资源管理器中选择下载的 HMS Unity 插件,默认全选中。将出现“导入 Unity 包”对话框:
点击import,完成后,Unity 会将 Unity 插件部署到您的Assets文件夹中。具体文件夹为Assets中huawei目录和StreamingAssets目录。
为了让插件生效,还需将您的项目与插件关联,集成游戏插件需要关联game service和account service,步骤如下:
选择huawei>kit Settings,打开Hms Settings弹窗:
勾选Game Service的同时,会自动勾选Account。
勾选后关闭弹窗,可以在项目栏Hierarchy下,看到自动创建了HMSAccountManager和HMSGameManager实例。说明关联成功,可以通过插件实现调用接口了。
Huawei目录下有demo示例,可以快速运行demo。
运行demo之前,需要修改包名与华为开发者后台保持一致,并下载华为开发者后台的json文件替换demo中的json文件,替换路径:Assets>StreamingAssets。
并修改包名与json保持一致,打开:
点击页面中Player Settings…
选择页面左侧栏中Player,选择Other Settings,勾选Override default Package Name,并输入包名,如图:
替换包名以及对应的json文件后,打开demo并运行即可。游戏demo路径:Assets>Huawei>demos>Game。
也可以自己导入插件后,根据demo示例,集成华为Game Service SDK,比如集成登录接口:
在assets目录下创建一个布局场景文件,创建一个按钮:
创建脚本文件,调用登录接口并绑定按钮点击事件,接口代码如下:
在Start方法中实现插件注册好的登录相关的接口方法。
void Start()
{
HMSAccountManager.Instance.OnSignInSuccess = OnSignInSuccess;
HMSAccountManager.Instance.OnSignInFailed = OnSignInFailed;
}
public void OnSignInSuccess(AuthAccount auth)
{
Debug.Log("sign success");
}
public void OnSignInFailed(HMSException e)
{
Debug.LogError(e.Message);
}
然后接口调用插件封装好的接口即可。
public void signIn()
{
HMSAccountManager.Instance.SignIn();
}
最后运行并测试接口是否成功,接口调用成功会打印sign success日志,如图:
其他接口接入类似,可自行参考demo集成,这里不再赘述:https://github.com/EvilMindDevs/hms-unity-plugin