Share REC简介
随着各种游戏直播平台的兴起,人们对游戏的分享热情也在不断的升温,现在PC端的录屏分享和实时分享已经很普及了,但是想要在移动端实现游戏的分享还是很困难的,普通的录屏软件还需要ROOT权限。接下来介绍的这款SDK就很完美的解决了这一问题,而且接入简单。
ShareREC是Mob推出的最完美手游录像解决方案,接入SDK的游戏将拥有强大的录制并分享的功能,同时后台提供完善的数据统计,实时了解播放量、分享量和下载量。
下载地址
开始接入ShareSDK
此SDK的接入将会以制作一个小DEMO的方式交给大家,当然,笔者第一次做文章分享,有什么不足的地方欢迎留言指正
废话少说我们现在开始
创建Unity工程
本次教程使用unity的版本为4.6.1fi的版本
首先创建一个工程,当然工程的名字随便取,不过最好还是可以见名知意
创建好工程最好先保存一下当前场景,养成一个好的开发习惯。这里我创建了一个目录用来存放场景文件,在该目录保存场景并命名为Scene01。
创建DEMO拖动物体的功能
那么接下来就是制作DEMO的功能了,我在百度找了一个拖动物体的方法,并放入了该工程中,在这里感谢“清道夫”的分享
在此附上源码,新建脚本将此代码粘贴至脚本中,将该脚本挂在你想要拖动的物体上面就大功告成了!!!
private Vector3 _vec3TargetScreenSpace;// 目标物体的屏幕空间坐标
private Vector3 _vec3TargetWorldSpace;// 目标物体的世界空间坐标
private Transform _trans;// 目标物体的空间变换组件
private Vector3 _vec3MouseScreenSpace;// 鼠标的屏幕空间坐标
private Vector3 _vec3Offset;// 偏移
void Awake() { _trans = transform; }
IEnumerator OnMouseDown()
{
// 把目标物体的世界空间坐标转换到它自身的屏幕空间坐标
_vec3TargetScreenSpace = Camera.main.WorldToScreenPoint(_trans.position);
// 存储鼠标的屏幕空间坐标(Z值使用目标物体的屏幕空间坐标)
_vec3MouseScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, _vec3TargetScreenSpace.z);
// 计算目标物体与鼠标物体在世界空间中的偏移量
_vec3Offset = _trans.position - Camera.main.ScreenToWorldPoint(_vec3MouseScreenSpace);
// 鼠标左键按下
while (Input.GetMouseButton(0))
{
// 存储鼠标的屏幕空间坐标(Z值使用目标物体的屏幕空间坐标)
_vec3MouseScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, _vec3TargetScreenSpace.z);
// 把鼠标的屏幕空间坐标转换到世界空间坐标(Z值使用目标物体的屏幕空间坐标),加上偏移量,以此作为目标物体的世界空间坐标
_vec3TargetWorldSpace = Camera.main.ScreenToWorldPoint(_vec3MouseScreenSpace) + _vec3Offset;
// 更新目标物体的世界空间坐标
_trans.position = _vec3TargetWorldSpace;
// 等待固定更新
yield return new WaitForFixedUpdate();
}
}
开始接入sdk
本次的DEMO使用的UI为NGUI,这里UI部分不做详细的解答,UI的布局如下
接下来便是每个按钮的功能功能编写
将ShareREC脚本拖到MainCamera上面ShareREC脚本中有几个属性
APP Key :在Mob官网创建一个账号,进入后台创建一款应用,你就会找到此ID
APP Secret:同上
Max Frame Size:录屏时的分辨率设置
Bit Rate:这个默认就好
Record Audio From Mic:是否使用设备麦克风录制声音
在编写之前要先引入SDK的命名空间
using cn.sharerec;
创建按钮监听脚本监听按钮的点击
public UILabel uilable;
public GameObject IsOn;
void Start () {
if (ShareREC.IsAvailable())
{
uilable.text = "支持";
} else
{
uilable.text = "不支持";
}
}
//开始录制视频
public void OnSwitch() {
ShareREC.StartRecorder();
IsOn.SetActive(true);
}
//结束录制视频
public void OffSwitch() {
ShareREC.StopRecorder();
IsOn.SetActive(false);
}
//视频分享
public void VideoData() {
ShareREC.ShowShare();
}
//个人资料
public void PersonalData() {
ShareREC.ShowProfile();
}
//视频列表
public void VideoList() {
ShareREC.ShowVideoCenter();
}
最后将方法的监听加到按钮上面就大功告成了
开发中会出现的问题
在SDK导入之前需要将开发环境切换成安卓,这样Unity才不会报错。
Unity是不支持在编辑器上面测试安卓的方法的,需要将工程打包之后才可以进行DEMO的测试
打包的时候安卓的版本号需要和AndroidManifest保持一致,不然会报错
网友评论