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

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

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


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


Unity


sdk下载地址:https://github.com/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 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平台

新版的

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

旧版发布过程如下:

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

首先,修改代码

找到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了。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值