Unity2019.4.6f1和AndroidStudio4.0实现安卓原生向unity发送消息
本篇主要讲通过安卓向unity发送字符串消息。
一.工具如下:
1.Unity2019.4.6f1;本教程2019版本的unity均可使用。
2.AS4.0创建原生安卓工程;其他版本应该也适用
3.VS2019编写unity代码;任何版本都可以
二.流程综述
1.创建unity安卓工程,生成对应的安卓apk(相关配置请参阅https://mp.csdn.net/editor/html/81739935);
2.创建接受安卓信号的代码块
3.创建安卓原生工程,书写向ios发送消息的代码块,生成对应的jar包
4.将jar包导入工程并且进行相关的配置
三.详细流程
第一步,unity原生工程+创建接受安卓信号的代码块
1.创建unity工程,将平台更改为安卓
2.新建场景,在新的场景中创建物体,名字为“aaa”,注意这个名字很重要,安卓那边要统一使用,可为任意名字,只要对的上就行;
3.创建新的脚本:挂载到第二部创建的物体上面。这个简单的消息就是当收到安卓发送的消息后,将其展示在Text上。(jar包的安卓必须在安卓设备上运行才编译,编辑器上无法使用的)
第二步,创建安卓原生工程
1.创建安卓空白工程
2..找到图中android模式下的activity.main.xml,将其删除。
3.找到图中的MainActivity删除报错的那一行
4.在app中,将第一行注释掉,将第二行内容添加至此
5.注释掉下图中的第7和第12行
至此,你可以点击build生成对应的jar包了,这个只是开始配置的第一步,还没有开始与unity 交互
7.导入Unity的jar包,到libs中,如下图:
jar包路径:D:\Softwares\unity\2019.4.6f1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Classes;红色部分为你的Unity的安装路径
8.导入UnityPlayerActivity.java代码块:
UnityPlayerActivity.JAVA路径:D:\Softwares\unity\2019.4.6f1\Editor\Data\PlaybackEngines\AndroidPlayer\Source\com\unity3d\player
9.在MainActivity中编写交互代码:
public class MainActivity extends UnityPlayerActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public static String tocken="fasmfoahn i,mg;hlag .g,apjkgafmdkfbaief adfmoe[fdmf";
///向Unity 发送消息,此处方法名很重要,在Unity中要用
public static void Send()
{
UnityPlayer.UnitySendMessage("aaa","sendMessage", tocken);
}
///aaa为Unity接收消息的物体,sendMessage为接收消息的方法名,tocken为发送的消息
}
将MainActivity 的继承更改为:UnityPlayerActivity ;
10.点击Rebuild,生成新的jar包
至此安卓工程完毕。
将jar包导入工程并且进行相关的配置
1.在以下路径中找到app-debug.aar包
2.在文件夹中找到app-debug.aar,并解压
3.在解压的文件中找到以下两个文件,并将其放入unity的Assest/Plugins中
4.创建ReciveMessage,挂载在场景中
public class ReciveMessage : MonoBehaviour
{
AndroidJavaClass androidJava;
AndroidJavaObject @object;
void Start()
{
androidJava = new AndroidJavaClass("com.unity3d.player.UnityPlayer");//这个是固定写法
@object = androidJava.GetStatic<AndroidJavaObject>("currentActivity");//这个可以更改,但是对应的是安卓那边的Activity,本次配置无更改,按照这个写就可以
@object.CallStatic("Send");
}
}
5.AndroidManifest配置,注意红色地方的包名,这个是安卓原生的包名。第二个红框是应当添加的,不然会闪退。
打包场景并运行。试试看你成功了没有吧。有问题私聊我吧
本文地址:https://blog.csdn.net/mo_qi_qi/article/details/110189425
上一篇: 洛谷P1439 【模板】最长公共子序列