先看一下我最近自己做的一个游戏的效果图,然后在为大家讲述怎么做这样一个分享功能,如果图片不直观,当然如果你也不介意我顺便宣传一下我的游戏,你可以点击以下这个链接,下载我的游戏,进去体验一下里面的这个分享功能:http://zhushou.360.cn/detail/index/soft_id/2954399?recrefer=SE_D_BubbleDeer
好了,接下来我们就来一起探讨一下这个分享功能怎么做。
(1)提供下载一个社会化分析的SDK,这个我用的是mob.com网的ShareSDK,贴上网址:http://sharesdk.mob.com/Download
(2)解压下载下来的这个ShareSDK,我们直接进入主题,用Unity打开里面的Unity3dDemo这个项目
(3)你会在打开的工程里面看到这些东西,很显然,我们现在要做的是android的分享功能,那么里面有一个IOS这个东西,大可以直接删除,或者你愿意直接保留,那当然也没影响。你直接点Assets,你其实可以看到里面是有Demo的,你也可以直接将它打包成一个apk安装到手机上试试效果,然后在回来继续学习接下来的东西;
(4)如果你体验得差不多了,咱们继续。那么接下来就是关键了,我们点击Plugins,鼠标右键然后Export Package…,将当前我们要用到的这个东西到处到一个我们可以找得到的位置,这里我直接导出到桌面,命名为ShareSDK。
(5)现在,如果你信任我,我们直接打开我们的项目,然后把这个导出来的东西直接导入到我们的工程里面(怎么导入,这个不要说不会吧,直接拖拽嘛)……,当然,你太信任我也不好吧,先新建个工程学习一下在说会比较合适一点的,嗯,那好我们新建一个工程我命名为MyShareTest,然后将ShareSDK这个你导出来的东西导到现在这个新工程里面吧!
(6)接着,我们在Assets下建一个Scenes文件夹,然后保存当前场景到Scenes里面,我命名为MyShareScene;然后,我们点击Plugins,在Plugins下面,你会看到有一个ShareSDK这个脚本,嗯,记住这个脚本,把它拉到相机上面,然后呢?然后我们现在不用管它了(那不拖呢,不拖咱们接下去做的都是无用功了,哈哈)。
(7)那么,现在更关键的步骤来了,其实刚刚我有件事情没有告诉大家,现在你点击Assets,你看到啥了……,没错,就是有一些文件跟着打包出来了,先别急着删除,看到里面有个Demo的脚本吧,(要是没有,到其他文件夹里找找吧),这个是很关键的一个脚本
(8)现在我们打开这个脚本,当然,你会在里面看到这么一堆堆东西,头大了没?先别激动哈,新建一个脚本,咱们叫做ShareButtonCtrl,然后把下面的代码复制过去:
using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;
using cn.sharesdk.unity3d;
public class Demo : MonoBehaviour {
public GUISkin demoSkin;
// Use this for initialization
void Start ()
{
print(Application.persistentDataPath);
ShareSDK.setCallbackObjectName("Main Camera");
ShareSDK.open ("api20");
//Sina Weibo
Hashtable sinaWeiboConf = new Hashtable();
sinaWeiboConf.Add("app_key", "568898243");
sinaWeiboConf.Add("app_secret", "38a4f8204cc784f81f9f0daaf31e02e3");
sinaWeiboConf.Add("redirect_uri", "http://www.sharesdk.cn");
ShareSDK.setPlatformConfig (PlatformType.SinaWeibo, sinaWeiboConf);
//Tencent Weibo
Hashtable tcConf = new Hashtable();
tcConf.Add("app_key", "801307650");
tcConf.Add("app_secret", "ae36f4ee3946e1cbb98d6965b0b2ff5c");
tcConf.Add("redirect_uri", "http://www.sharesdk.cn");
ShareSDK.setPlatformConfig (PlatformType.TencentWeibo, tcConf);
//SMS
ShareSDK.setPlatformConfig (PlatformType.SMS, null);
//QZone
Hashtable qzConf = new Hashtable();
qzConf.Add ("app_id", "100371282");
qzConf.Add ("app_key", "aed9b0303e3ed1e27bae87c33761161d");
ShareSDK.setPlatformConfig (PlatformType.QZone, qzConf);
//WeChat
Hashtable wcConf = new Hashtable();
wcConf.Add ("app_id", "wx4868b35061f87885");
ShareSDK.setPlatformConfig (PlatformType.WeChatSession, wcConf);
ShareSDK.setPlatformConfig (PlatformType.WeChatTimeline, wcConf);
ShareSDK.setPlatformConfig (PlatformType.WeChatFav, wcConf);
//QQ
Hashtable qqConf = new Hashtable();
qqConf.Add ("app_id", "100371282");
ShareSDK.setPlatformConfig (PlatformType.QQ, qqConf);
//Facebook
Hashtable fbConf = new Hashtable();
fbConf.Add ("api_key", "107704292745179");
fbConf.Add ("app_secret", "38053202e1a5fe26c80c753071f0b573");
ShareSDK.setPlatformConfig (PlatformType.Facebook, fbConf);
//Twitter
Hashtable twCon