分享截屏已经是很多游戏应用必备的功能了,找到了一个国内的插件,虽然用起来还行,但是,还是想吐槽下,跟老外的插件比,真的有差距啊有差距啊有差距啊,啊啊啊。
ShareSDK的官方网站:http://www.mob.com/,使用插件需要注册账号获得key,不过,至少现在是免费的。
我的Unity版本是5.3,xcode版本是7.2,ShareSDK版本是2.7.4
Unity
新建一个简单的工程,点击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 initialization
void Start ()
{
ssdk = gameObject.GetComponent<ShareSDK> ();
ssdk.shareHandler = OnShareResultHandler;
}
public void Capture ()
{
ShareContent content = new ShareContent ();
content.SetText ("分享text");
content.SetTitle ("分享title");
content.SetTitleUrl ("http://www.site.com");
content.SetSite ("分享site");
content.SetSiteUrl ("http://http://www.site.com");
content.SetUrl ("http://http://www.site.com");
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平台
这部分已经不知道如何吐槽了。
首先,修改代码
找到plugins/ios目录下的ShareSDKUnity3DBridge.m文件,
把不需要的平台注释掉
然后,在Unity编辑器中,把不需要的平台去掉
导出到xcode,然后,下载sharesdk的ios插件。
下载地址:http://www.mob.com/#/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了。