Unity for the original development of QQ

使用工具:Eclipse +Unity3D

准备工作

先在QQ互联注册账号申请App_ID (网络上有方法)

1.新建项目

Unity for the original development of QQ_第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 文件 (这里面是配置文件)


Unity for the original development of QQ_第2张图片
1


Unity for the original development of QQ_第3张图片
2

4.AppID申请方式

QQ互联 注册账号,申请应用。得到Appid

5.打jar包

选择project-->clean 

找到项目文件  bin--classes-com--herbie--unityqqlogin


Unity for the original development of QQ_第4张图片
查看是否生成文件

6.返回到项目文件

选择bin 文件 右击选择Export 


Unity for the original development of QQ_第5张图片
1


Unity for the original development of QQ_第6张图片
2

点击finsh  就ok

7.新建Unity 项目

从Eclipse目录拷贝出导出的文件 class.jar  ;libs文件 (去掉unity class.jar文件);res文件夹 ;AndroidMainfest.xml文件

Unity for the original development of QQ_第7张图片
新建如下目录

8.新建脚本

设置按钮点击事件

AndroidJavaClass jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer"); 

 AndroidJavaObject jo = jc.GetStatic("currentActivity");

jo.Call ("QQlogin");

9.打包文件


Unity for the original development of QQ_第8张图片
注意

包名文件要相同,不然调用不起来

10.This is End.

你可能感兴趣的:(Unity for the original development of QQ)