美文网首页
实现游戏的录屏工能-Unity之游戏录屏SDK ShareREC

实现游戏的录屏工能-Unity之游戏录屏SDK ShareREC

作者: 这个男人有点冷 | 来源:发表于2016-06-27 16:10 被阅读0次

    Share REC简介

    随着各种游戏直播平台的兴起,人们对游戏的分享热情也在不断的升温,现在PC端的录屏分享和实时分享已经很普及了,但是想要在移动端实现游戏的分享还是很困难的,普通的录屏软件还需要ROOT权限。接下来介绍的这款SDK就很完美的解决了这一问题,而且接入简单。

    ShareREC是Mob推出的最完美手游录像解决方案,接入SDK的游戏将拥有强大的录制并分享的功能,同时后台提供完善的数据统计,实时了解播放量、分享量和下载量。

    下载地址

    ShareREC录屏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保持一致,不然会报错

    DEMO成品图欣赏

    相关文章

      网友评论

          本文标题:实现游戏的录屏工能-Unity之游戏录屏SDK ShareREC

          本文链接:https://www.haomeiwen.com/subject/ukizdttx.html