700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 用ShareSDK for Unity分享屏幕截图(android和ios平台)

用ShareSDK for Unity分享屏幕截图(android和ios平台)

时间:2022-06-25 17:22:16

相关推荐

用ShareSDK for Unity分享屏幕截图(android和ios平台)

分享截屏已经是很多游戏应用必备的功能了,找到了一个国内的插件,虽然用起来还行,但是,还是想吐槽下,跟老外的插件比,真的有差距啊有差距啊有差距啊,啊啊啊。

ShareSDK的官方网站:/,使用插件需要注册账号获得key,不过,至少现在是免费的。

我的Unity版本是5.3,xcode版本是7.2,ShareSDK版本是2.7.4

Unity

sdk下载地址:/MobClub/New-Unity-For-ShareSDK

新建一个简单的工程,点击capture按钮以后会截屏并启用默认分享目录。

导入SDK

在一个GameObject上添加脚本,ShareSDK是官方的脚本,ShareDemo是我写的。

ShareDemo.cs

using UnityEngine;using System.Collections;using cn.sharesdk.unity3d;public class ShareDemo : MonoBehaviour{private ShareSDK ssdk;// Use this for initializationvoid Start (){ssdk = gameObject.GetComponent<ShareSDK> ();ssdk.shareHandler = OnShareResultHandler;}public void Capture (){ShareContent content = new ShareContent ();content.SetText ("分享text");content.SetTitle ("分享title");content.SetTitleUrl ("");content.SetSite ("分享site");content.SetSiteUrl ("http://");content.SetUrl ("http://");content.SetComment ("分享comment");content.SetShareType (ContentType.Image);//截屏Application.CaptureScreenshot ("Shot4Share.png");//设置图片路径content.SetImagePath (Application.persistentDataPath + "/Shot4Share.png");ssdk.ShowPlatformList (null, content, 100, 100);}//以下为回调的定义:void OnShareResultHandler (int reqID, ResponseState state, PlatformType type, Hashtable result){//if (state == ResponseState.Success)//{//text.text= ("share result :");//text.text= (MiniJSON.jsonEncode(result));//}//else if (state == ResponseState.Fail)//{//text.text =("fail! error code = " + result["error_code"] + "; error msg = " + result["error_msg"]);//}//else if (state == ResponseState.Cancel) //{//text.text= ("cancel !");//}}}

去官网注册账号,获得key

修改ShareSDK.cs,令appKey等于正确的key。

Android部分

android的比较简单,唯一要注意的就是,要定制分享平台的时候,是去删文件。(你真是在逗我)

找到plugins/android/sharesdk/libs目录,删除 ShareSDK-平台名字。。.jar文件。

打包编译,运行结果如下,这是全部分享平台都有的

点击其中一个平台

如果,删掉lib文件,定制平台的话是下面的样子

IOS平台

新版的

不用那么麻烦了,导入新的包,会多一个editor目录,然后发布ios,在xcode里编译即可。不过还是要修改语言。 另外,去除不用的共享时,发布报错,不确定是我操作出错还是其他的问题。

旧版发布过程如下:

这部分已经不知道如何吐槽了。

首先,修改代码

找到plugins/ios目录下的ShareSDKUnity3DBridge.m文件,

把不需要的平台注释掉

然后,在Unity编辑器中,把不需要的平台去掉

导出到xcode,然后,下载sharesdk的ios插件。

下载地址:/#/downloadDetail/ShareSDK/ios

这里下载可以选择,只勾选需要的平台

下载以后,解压得到目录ShareSDK

用xcode打开工程,然后把ShareSDK拖到工程中

选中copy items if needed

找到build settings 下面的Library search paths,看到那个被双引号括起来的目录了吗?去掉双引号。(这真的不是bug么)

找到build phases下的link binary with libraries,按官方说明添加项目(。。。。)

需要添加6、7项

添加完毕

如果你用xcode7,恭喜你,你会看到一个红色的文件名

这个时候,要打开build settings 下的other linker flags

分别添加下面内容,如果不加,会闪退。

-ObjC-lc++-lz-liconv

你以为可以了吗?错,这个时候编译出来的,是英文菜单。。。。。。

所以,要打开info.plist,把默认的英文改成中文,这真的不是bug?真的不是?

经过这一番努力,终于可以编译了,

终于,ok了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。