Unity与安卓通信(2)

简介: Unity与安卓通信(2)

Unity与安卓通信(2)

安卓

1.新建一个安卓项目

网络异常,图片无法展示
|

2.新建一个Module

网络异常,图片无法展示
|

创建一个Android Library的Module,一定要更改一下左边的选项,因为as默认是选择Phone&Tablet,取一个名字unitytoandroidlib

网络异常,图片无法展示
|

网络异常,图片无法展示
|

3.在Module里新建一个java文件

在Module里新建一个java文件,取名为Test

网络异常,图片无法展示
|

在Test.class里编写如下代码

packagecom.example.unitytoandroidlib;

 

importandroid.util.Log;

 

publicclassTest {

   

       //无参无返回值

       publicvoidNoParm(){

           Log.i("Unity","This is NoParm");

       }

 

       //有参有返回值

       publicintOneParm(Stringval){

           Log.i("Unity",val);

           return10;

       }

 

       //静态方法有参有返回值

       publicstaticintsOneParm(Stringval){

           Log.i("Unity","sOneParm"+val);

           return20;

       }

}

 

3.Rebuild Project

这一次我们是在创建的unitytoandroidlib下生成了aar文件

网络异常,图片无法展示
|

unity

1.切换到安卓平台

网络异常,图片无法展示
|

2.添加aar文件

在Assets文件夹下,创建一个Android文件夹,将在as中build出来的aar文件拖到Android文件夹下,如图所示

网络异常,图片无法展示
|

3.创建UI

网络异常,图片无法展示
|

网络异常,图片无法展示
|

4.编写一个C#脚本

编写一个C#脚本,取名为Test,必须要保证C#脚本的文件名和C#脚本里的类名一致否则无法挂载到UI按钮组件上

除此之外,实例化类对象时,括号中的字符串参数要填写在as中包名及类名

网络异常,图片无法展示
|

usingSystem.Collections;

usingSystem.Collections.Generic;

usingUnityEngine;

 

publicclassTest : MonoBehaviour

{

   // Start is called before the first frame update

   voidStart()

   {

       

   }

 

   // Update is called once per frame

   voidUpdate()

   {

       

   }

 

   publicvoidTestOne()

   {

       //实例化一个此类对象

       AndroidJavaObjectjo=newAndroidJavaObject("com.example.unitytoandroidlib.Test");

       jo.Call("NoParm");

   }

 

   publicvoidTestTwo()

   {

       //实例化一个此类对象

       AndroidJavaObjectjo=newAndroidJavaObject("com.example.unitytoandroidlib.Test");

       intresult=jo.Call<int>("OneParm","This is OneParm");

       Debug.Log("TestTwo="+result);

   }

 

   publicvoidTestThree()

   {

       //找到此类,从而调用其中的静态方法

       AndroidJavaClassjc=newAndroidJavaClass("com.example.unitytoandroidlib.Test");

       intresult=jc.CallStatic<int>("sOneParm", "This is sOneParm");

       Debug.Log("TestThree="+result);

   }

}

 

5.挂在函数

选中UI按钮组件,在inspector视图下,为不同的组件挂载不同的函数达到函数监听响应的功能

网络异常,图片无法展示
|

运行

相关文章
|
6月前
|
Android开发
Android JNI与CAN通信遇到的问题总结
Android JNI与CAN通信遇到的问题总结
223 1
|
6月前
|
Android开发
【Android App】蓝牙的设备配对、音频传输、点对点通信的讲解及实战(附源码和演示 超详细)
【Android App】蓝牙的设备配对、音频传输、点对点通信的讲解及实战(附源码和演示 超详细)
1208 0
|
2月前
|
Java Android开发 数据安全/隐私保护
Android中多进程通信有几种方式?需要注意哪些问题?
本文介绍了Android中的多进程通信(IPC),探讨了IPC的重要性及其实现方式,如Intent、Binder、AIDL等,并通过一个使用Binder机制的示例详细说明了其实现过程。
307 4
|
4月前
|
Java Android开发 Spring
Android Spingboot 实现SSE通信案例
【7月更文挑战第14天】以下是使用Android和Spring Boot实现SSE(Server-Sent Events)通信的案例摘要: 在`MainActivity`中: - 初始化界面元素并设置按钮点击事件。 - `startSseRequest`方法创建`WebClient`对象,设置请求头,发送请求,并处理响应和错误。 请确保将`your-server-url`替换为实际的服务器地址。
115 14
|
3月前
|
Android开发
Android项目架构设计问题之C与B通信如何解决
Android项目架构设计问题之C与B通信如何解决
17 0
|
3月前
|
移动开发 前端开发 weex
Android项目架构设计问题之模块化后调用式通信如何解决
Android项目架构设计问题之模块化后调用式通信如何解决
16 0
|
4月前
|
Dart Android开发 Windows
Flutter和Native 通信 android端
Flutter和Native 通信 android端
|
6月前
|
Java 物联网 Linux
Android硬件通信之 串口通信
Android硬件通信之 串口通信
108 0
|
6月前
|
数据采集 编解码 图形学
Android平台Unity下如何通过WebCamTexture采集摄像头数据并推送至RTMP服务器或轻量级RTSP服务
Android平台Unity下如何通过WebCamTexture采集摄像头数据并推送至RTMP服务器或轻量级RTSP服务
331 0
|
监控 网络协议 Java
Android中使用JT808协议进行车载终端通信的实现
Android中使用JT808协议进行车载终端通信的实现
164 0