如何通过ShareSDK的Unity3D快速接入分享与授权
Unity3D是由Unity Technologies 开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎;在游戏中使用分享功能能够有效的帮助游戏运营推广,通过分享回流来提高 APP 安装量。ShareSDK 的 Unity3D 插件可以帮助开发者快速实现分享与授权功能。
方法/步骤
应用注册
获取 appkey,操作步骤可参考:《 Mob 开发者后台使用指南》
快速集成
下载 ShareSDK 的 Unity3D 工具类,双击或导入 ShareSDK.unitypackage 导入相关文件。 注意该操作可能会覆盖您原来已经存在的文件。
挂接 ShareSDK 脚本并配置平台信息
选择好需要挂接的 GameObject(例如 Main Camera),在右侧栏中点击 Add Component,选择 Share SDK 进行挂接。
挂接后会发现提供了当前支持的平台和及其配置信息。可以直接在此处修改你所需要的平台的配置信息。需要注意的是当前的编译环境是 Android 还是 iOS,其字段名称是不同的哦!
Android 编译配置
关键文件:mainTemplate.gradle 和 proguard-user.txt
Unity2017 及以上版本,在 Build Settings > Player Settings 下面,有两个开关,新建项目的话打开这两个开关就可以在 Plugins>Android 生成对应的两个文件;由于这两个文件 ShareSDK 都有直接提供,只需导入.unitypackage 就好,Unity 检测到已经存在这两个文件,自动会更新为勾选状态; Build 的时候有一个 Build System 选项,此选项默认选择的 Internal,切记要改成选择里面的 gradle 选项(重要) 图中所示的 mainTemplate.gradle 文件,即为集成的核心文件,使用编辑器打开此文件,要点内容如下:
此处为区分 Unity5.6 和 Unity2017 gradle 插件版本的地方,开发时用到哪个版本就使用哪个,若使用到其他 Unity 版本,请随意选择一个,然后 build,编译的时候会报错的,Console 控制台信息报错时会提示插件版本是多少,根据提示修改成需要的版本就好(只修改后面的数字,比如:2.3.0 或者 2.1.0 )
buildscript
此处为配置签名文件和签名文件的别名和密码(正式发布 apk 需要的签名文件),可以写绝对路径,也可以写相对路径,相对路径使用”..\”跳出一层目录,跳出多层则连续拼接
此处为混淆文件的配置,也就是 MobPush 提供的 proguard-user.txt 文件,此文件内容不需要更改,按照提供的即可, 如自己代码需要额外增加混淆逻辑,可自行增加混淆规则,如果是 Unity2017 以下版本,请把注释的代码调换一下即可; ( minifyEnabled 属性为是否开启代码混淆:true 为开启混淆,false 为关闭)
配置第三方 key 信息
ShareSDK 提供了一个 MobSDK.gradle 文件,可以在里面直接将 mob 的 key 改成自己的,并且删除不需要的平台,或者修改成自己的第三方 key 的信息即可;
iOS 编译配置
初始化与社交平台信息配置
修改 ShareSDKDevInfo.cs 文件,配置所需的平台信息
1.配置您自己的 ShareSDK 的 AppKey (通过第一步获取)
public class AppKey
{
//配置 ShareSDK AppKey
public string appKey = "a5d9150e8348";
}
2.选择所需要的平台,不想要的可以直接注释或删掉
接口调用
首先引入命名空间:
using cn.sharesdk.unity3d;
private ShareSDK ssdk;
分享
1.定制分享信息
2.设置分享回调
ssdk.shareHandler = ShareResultHandler;
//以下为回调的定义:
3.进行分享
//通过分享菜单分享
ssdk.ShowPlatformList (null, content, 100, 100);
//直接通过编辑界面分享
ssdk.ShowShareContentEditor (PlatformType.SinaWeibo, content);
//直接分享
ssdk.ShareContent (PlatformType.SinaWeibo, content);
授权(每次都会跳转到第三方平台进行授权)
设置授权回调
ssdk.authHandler = AuthResultHandler;
//以下为回调的定义:
进行授权
ssdk.Authorize(PlatformType.SinaWeibo);
获取用户信息 (只会在第一次跳转到第三方平台进行授权)
指定获取用户信息的回调
sdk.showUserHandler = GetUserInfoResultHandler;
//以下为回调的定义:
获取用户信息
ssdk.GetUserInfo(PlatformType.SinaWeibo);
至此,Unity3D 插件部分的工作已经完成。如在操作过程中遇到任何问题,欢迎联系官网MobTech技术支持。