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视图下,为不同的组件挂载不同的函数达到函数监听响应的功能

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

运行

目录
打赏
0
0
0
0
5
分享
相关文章
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
396 4
Android JNI与CAN通信遇到的问题总结
Android JNI与CAN通信遇到的问题总结
372 1
【Android App】蓝牙的设备配对、音频传输、点对点通信的讲解及实战(附源码和演示 超详细)
【Android App】蓝牙的设备配对、音频传输、点对点通信的讲解及实战(附源码和演示 超详细)
1974 0
Android中多进程通信有几种方式?需要注意哪些问题?
本文介绍了Android中的多进程通信(IPC),探讨了IPC的重要性及其实现方式,如Intent、Binder、AIDL等,并通过一个使用Binder机制的示例详细说明了其实现过程。
502 4
Android Spingboot 实现SSE通信案例
【7月更文挑战第14天】以下是使用Android和Spring Boot实现SSE(Server-Sent Events)通信的案例摘要: 在`MainActivity`中: - 初始化界面元素并设置按钮点击事件。 - `startSseRequest`方法创建`WebClient`对象,设置请求头,发送请求,并处理响应和错误。 请确保将`your-server-url`替换为实际的服务器地址。
197 14
Android项目架构设计问题之C与B通信如何解决
Android项目架构设计问题之C与B通信如何解决
32 0
Android项目架构设计问题之模块化后调用式通信如何解决
Android项目架构设计问题之模块化后调用式通信如何解决
37 0
Android硬件通信之 串口通信
Android硬件通信之 串口通信
150 0
Android平台Unity下如何通过WebCamTexture采集摄像头数据并推送至RTMP服务器或轻量级RTSP服务
Android平台Unity下如何通过WebCamTexture采集摄像头数据并推送至RTMP服务器或轻量级RTSP服务
408 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等