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配置,注意红色地方的包名,这个是安卓原生的包名。第二个红框是应当添加的,不然会闪退。

打包场景并运行。试试看你成功了没有吧。有问题私聊我吧

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值