使用工具:Eclipse +Unity3D
准备工作
先在QQ互联注册账号申请App_ID (网络上有方法)
1.新建项目
新建设置应用名称,例如:UnityQQLogin
修改Package name,例如:com.herbie.unityqqlogin
接着一直next 下去
2.导入Unity 的包 (位置:Unity 5.6.0f3\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Classes\classes.jar)
导入腾讯QQ的包 (http://wiki.connect.qq.com/sdk下载)
导入包3.编码
找到src目录中 MainActivity.java 代码如下:
import org.json.JSONObject;
import com.herbie.unityqqlogin.R;
import com.tencent.connect.common.Constants;
import com.tencent.tauth.IUiListener;
import com.tencent.tauth.Tencent;
import com.tencent.tauth.UiError;
import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;
import android.content.Intent; import android.os.Bundle;
public class MainActivity extends UnityPlayerActivity{
private Tencent mTencent;
private BaseUiListener mBaseUiListener=new BaseUiListener();
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mTencent=Tencent.createInstance("你的AppID",this.getApplicationContext());
}
// qq登录代码, unity里面调用
public void QQlogin() {
if(!mTencent.isSessionValid())
mTencent.login(this, "", mBaseUiListener);
}
// qq请求回调
private class BaseUiListener implements IUiListener {
@Override
public void onComplete(Object obj){
@SuppressWarnings("unused")
JSONObject response=(JSONObject)obj;
//把请求到的参数传给unity
UnityPlayer.UnitySendMessage("ThirdLoginGameobject", "QQCallBack", obj.toString());
}
@Override
public void onCancel() {
}
@Override
public void onError(UiError uiError) {
}
/** * QQ登录页面返回处理 * @param requestCode * @param resultCode * @param data */
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
if (requestCode == Constants.REQUEST_API){
if (resultCode == Constants.RESULT_LOGIN) {
Tencent.handleResultData(data, mBaseUiListener);
}
super.onActivityResult(requestCode, resultCode, data);
}
}
}
在目录下找到 AndroidManifest.xml 文件 (这里面是配置文件)
1 24.AppID申请方式
QQ互联 注册账号,申请应用。得到Appid
5.打jar包
选择project-->clean
找到项目文件 bin--classes-com--herbie--unityqqlogin
查看是否生成文件6.返回到项目文件
选择bin 文件 右击选择Export
1 2点击finsh 就ok
7.新建Unity 项目
从Eclipse目录拷贝出导出的文件 class.jar ;libs文件 (去掉unity class.jar文件);res文件夹 ;AndroidMainfest.xml文件
新建如下目录8.新建脚本
设置按钮点击事件
AndroidJavaClass jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic("currentActivity");
jo.Call ("QQlogin");
9.打包文件
注意包名文件要相同,不然调用不起来
10.This is End.
网友评论