美文网首页
Unity for the original developme

Unity for the original developme

作者: IT白鸽 | 来源:发表于2017-11-17 17:25 被阅读0次

    使用工具: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 2

    4.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.

    相关文章

      网友评论

          本文标题:Unity for the original developme

          本文链接:https://www.haomeiwen.com/subject/itvjvxtx.html