开发环境:
Unity2020.3.241f1c1
Andoird Studio
开发准备:
微信开发者账号:注册App应用,从这儿获取包名、AppID和App Secret。
一、向微信开放平台注册App应用
1.点击创建应用
2.填写基本信息和平台信息,提交审核
注意:
1.填写的包名在Android Studio中可能要用到
2.签名的获取
在plaer setting中点击KeystoreManager填写好保存,生成xxx.keystore文件,再点击Custom Keystore填写好下面信息就可以了。
打包该app放在手机上
在你的Andorid机上下载安装该Apk工具,然后输入包名获取签名。
3.审核通过后得到AppID然后生成AppSecret
二、在Android Studio中导出AAR包共Unity使用
1.打开Android Studio新建一个工程
选择Empty Activity,点击Next创建
2.创建新的模块
选择Android Library 点击Next创建
我这里的Module名为LoginShare
3.在工程中导入Unity安卓开发工具中的Classes.jar文件
一般来说在unity中的如下路径:xxx\Unity 2020.3.24f1c2\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes
将该文件放在我们创建好的模块lib文件夹下
4.在工程中导入Unity安卓开发工具中的wechat-sdk-android-without-mta-x.x.x.jar文件
在微信开放平台中的操作过于繁琐,这里介绍一种简单的接入方式。
如下图所示,微信 SDK 已迁移到 Maven Central
所以,我们可以直接去它的官网上下载 Naven Central 地址
步骤一
步骤二
步骤三
然后用压缩文件工具打开arr文件,如下图所示
再把classes.jar文件拖到桌面并把名称命名为和arr文件的名称一样,最后把它放到Andorid Studio工程模块中的lib文件夹下图所示
5.按图下层级放入如下代码,及 AndroidUnityConnecter.java、WXEntryActivity.java、MainActivity.java、AndroidManifest.xml文件的编写
在包名文件夹下创建AndroidUnityConnecter.java文件
package com.lyarcloud;
import com.unity3d.player.UnityPlayer;
public class AndroidUnityConnecter {
private static final String connecterName = "UnityAndroidConnecter"; //通信物体
private static final String defaultMethodName = "ReceiveAndroidMsg"; //方法
public static final String UnityTag="Unity";
//发送消息到Unity
public static void SendMsgToUnity(String args)
{
UnityPlayer.UnitySendMessage(connecterName, defaultMethodName,args);
}
//发送消息到Unity
public static void SendMsgToUnity(String methodName,String args)
{
UnityPlayer.UnitySendMessage(connecterName,methodName,args);
}
/*接收到Unity发来的消息*/
public static void ReceiveUnityMsg(String key,String args)
{
//根据接受到的消息处理
switch (key)
{
case "getstring":
MainActivity.Ins.GetString(args);
break;
case "toast":
MainActivity.Ins.SayToast(args);
break;
}
}
public static void UnityPig(String msg)
{
MainActivity.Ins.SayToast(msg);
SendMsgToUnity("猪猪猪");
}
public static void Login(String args){
MainActivity.Ins.SayToast(args);
MainActivity.Ins.Login();
}
}
在包名.wxapi文件夹下创建WXEntryActivity.java文件
package com.lyarcloud.wxapi;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
import com.tencent.mm.opensdk.modelbase.BaseReq;
import com.tencent.mm.opensdk.modelbase.BaseResp;
import com.tencent.mm.opensdk.modelmsg.SendAuth;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
import com.unity3d.player.UnityPlayer;
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
private IWXAPI wxapi= null;
private final String APPID = "wxbf539d11da238208";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);