Android Studio安卓导出aar包与Unity 3D交互
本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) |
Chinar —— 心分享、心创新! 助力快速理两者 aar 包方式的交互 为新手节省宝贵的时间,避免采坑! |
Chinar 教程效果:
全文高清图片,点击即可放大观看 (很多人竟然不知道)
1
Create Android Module —— 创建安卓库模块
该过程,于新手来讲较为繁琐
另外导出 jar、arr 包创建 Module 的流程都一样
在此,为了便于新手理解
Chinar 直接提供另一个教程,专门做创建
请跳转 —— 安卓与Unity交互之-Android Studio创建Module库模块教程
2
Write Code in MainActivtity —— 在 Activity 中写代码
至此,所有的准备工作都已经做完!
我们在 Android Studio 安卓开发端,写2个 Android 端方法
然后,我们在 Unity 端写一个方法,测试通过安卓这边调用
安卓端代码如下:
package kim.unity.mylibrary; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.unity3d.player.UnityPlayer; import com.unity3d.player.UnityPlayerActivity; public class MainActivity extends UnityPlayerActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main);//注销掉这句,显示界面用的 } //测试Android Studio的A方法,等待Unity调用 //这里用中文名称当方法名,是为了便于理解。自己写,请不要用中文! public String 安卓方法A(String a,String b){return a+b;} //测试Android Studio的B方法,等待Unity调用 public int 安卓方法B(int a,int b) { 安卓端调用UnityMethodA();//调用下方方法 return a+b; } //这是安卓调用Unity端的方法 public void 安卓端调用UnityMethodA() { //UnityPlayer类中的静态方法 //UnitySendMessage向Unity发送消息, //(Unity挂载脚本的物体,具体哪个方法,传入参数“安卓端调用”) UnityPlayer.UnitySendMessage("Main Camera","UnityMethodA","安卓端调用"); } }
3
Create C# Script —— 在 Unity中创建一个C#脚本
我们在 Unity 端写一个方法,通过安卓来调用
脚本挂在、主相机 Main Camera 上
Unity端代码如下:(脚本挂在主相机上)
using UnityEngine; using UnityEngine.UI; /// <summary> /// 测试类,挂载相机上 /// </summary> public class Chinar : MonoBehaviour { public Text TextUp; //上方文本框 public Text TextDown; //下方文本框 private AndroidJavaObject jo; //私有jo对象 void Start() { AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); //固定写法 //固定写法、获取当前对象;返回一个 AndroidJavaObject对象 //jo代表安卓当中的 当前MainActivity对象 jo = jc.GetStatic<AndroidJavaObject>("currentActivity"); string strCallA = jo.Call<string>("安卓方法A", "第一形参", "第二形参"); //用Call方法,去调用安卓端方法A TextUp.text = strCallA; //输出到文本框 int strCallB = jo.Call<int>("安卓方法B", 333, 333); //调用安卓端方法B TextUp.text += "\n" + strCallB.ToString(); //换行,输出到文本框 } /// <summary> /// 这是Unity项目中的方法A /// </summary> /// <param name="a"></param> public void UnityMethodA(string a) { TextDown.text = a; } }
4
Create Unity UI —— 在 Unity中创建简单的UI
注意:
由于通过 Android Studio 写的代码,在 Unity 中测试、调用,是会报错的
只有打包 APK ,并安装到手机上才可以测试!
我们简单的做一个 UI,创建一个 UI文本框,来测试输出
5
Make Module —— 构造库模块
回到 Android Studio ,选中我们创建的库 mylibrary
菜单栏点击 Build →→然后 Make Module 完成库模块的制作
另外,准备好我们下一步需要做的修改。
6
Export jar Package —— 导出 jar 包到Unity中
至此,准备工作全部做好!
下面,就要进入主题,开始完成 aar 包的导出到 Unity
从而与达到 Unity 交互
1. —— 切换到Project工程视图,找到我们需要的文件
注意:
切换到 Project 工程目录视图
找到我们需要的 aar 文件,然后右键 Show in Explorer 从外部打开
然后我们在外部对文件稍作修改后才能导入到 Unity 中
2. —— 解压 mylibrary-debug.aar 文件并修改
aar 格式,用 rar 等压缩文件直接打开即可
切换到 Project 工程目录视图
找到我们需要的 aar 文件,然后右键 Show in Explorer 从外部打开
然后我们在外部对文件稍作修改后才能导入到 Unity 中
3. —— 修改外部AndroidManifest.xml,并导入Unity
工程目录视图,找打黄色的 mainifests / full / debug
同样通过 Show in Explorer 外部打开
记事本/ 或 Sublime Text 打开,修改包名
不会/想要安装 Sublime Text 的朋友请↓↓
Sublime Text 3(中文)在Windows下的配置、安装、运行
7
PlayerSettings —— Unity打包App之前的设置
注意:
更改下 PlayerSettings 中的 Package Name
需要与 AndroidManifest.xml 中的包名保持一致
8
Build And Run —— Unity打包App测试
注意:
不能 Build And Run 是由于没有安装对应的安卓 StudioUSB 驱动
步骤对于新手来讲,较为麻烦。以后我会专门写博客来讲解流程
这里修改后包名后,直接打包成 APK 包即可!
将打包的 App 包拷贝到手机中,并且安装测试
9
Summarize ——总结
提示:
其实安卓导出aar 包与 Unity 交互的操作很简单
这里我写的比较细致,只是怕新接触的朋友,采坑出错
一步步跟着我的做,即可完美完成!
多练习 3-5次,写好方法后,导包其实十几秒都能走一遍流程!
支持
May Be —— 搞开发,总有一天要做的事!
拥有自己的服务器,无需再找攻略! Chinar 提供一站式教程,闭眼式创建! 为新手节省宝贵时间,避免采坑! |
先点击领取 —— 阿里全产品优惠券 (享受最低优惠)
1 —— 云服务器超全购买流程 (新手必备!)
2 —— 阿里ECS云服务器自定义配置 - 购买教程(新手必备!)
3—— Windows 服务器配置、运行、建站一条龙 !
4 —— Linux 服务器配置、运行、建站一条龙 !
Chinar
END
本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究
对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com
对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
面试中关于Redis的问题看这篇就够了
昨天写了一篇自己搭建redis集群并在自己项目中使用的文章,今天早上看别人写的面经发现redis在面试中还是比较常问的(笔主主Java方向)。所以查阅官方文档以及他人造好的轮子,总结了一些redis面试和学习中你必须掌握的问题。事无巨细,不可能囊括到所有内容,尽量把比较常见的写出来。欢迎关注我的微信公众号:“Java面试通关手册”,也可以加我微信:“bwcx9393”与我学习交流。 什么是Redis? Redis 是一个使用 C 语言写成的,开源的 key-value 数据库。。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实...
- 下一篇
day03_js学习笔记_03_js的事件、js的BOM、js的DOM
day03_js学习笔记_03_js的事件、js的BOM、js的DOM ============================================================================= ============================================================================= 涉及到的知识点有: 五、js的事件 1、js的常用事件 onclick 点击事件 onchange 用户改变域的内容事件 onfoucus 获得焦点事件 onmouseover 鼠标悬浮事件 onmouseout 鼠标离开事件 onblur 失去焦点事件 onload 加载完毕的事件 2、事件的绑定方式(也可以叫事件的注册) (1) 将事件和响应行为都内嵌到html标签中。(学习演示时用的多) (2) 将事件内嵌到html中,而响应行为用函数进行封装。(开发中用的多) (3) 将事件和响应行为,与html标签完全分离。(开发中用的多) 3、阻止事件的默认行为 4、阻止事件的传播(相当于阻止事件冒泡) 六、js...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- 2048小游戏-低调大师作品
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker快速安装Oracle11G,搭建oracle11g学习环境