1. 首先我们要创建一个android项目

  2. 因为项目需要使用Unity提供的接口,所以需要将接口classes.jar引入至当前工程但中。接口包的所在地,打开Finder->应用程序->Unity->点击Unity图标,鼠标右键选择“显示包内容”->Contents->PlaybackEngines->AndroidPlayer->bin->classes.jar 。接口包引入工程后,开始编写JAVA代码。

  3. UnityTestActivity是主Activity,Unity程序一起动就会调用这个Activity,它是在AndroidManifest.xml中配置的。它需要继承UnityPlayerActivity,然而它就是刚刚我们引入的classes.jar包中提供的接口类。UnityTestActivity对外提供了两个方法接口,StartActivity0(String name) 方法与StartActivity1(String name)方法,这两个方法是在Unity中使用C#脚本调用的,意思是调用后程序将打开一个新的Activity,参数name也是由C#脚本传递过来的,接着将传递的String参数继续传递给新打开的Activity。

  4. 接下来就是设置xml文件和布局文件了。对于会android编程的同学就很熟悉了。

  5. 把写好的java代码发布成jar包。接下来就创建unity工程,Unity工程中文件夹的结构如下,Plugins->Android的名称不能修改,必需保持一致。接着把Eclipse中Android的工程文件拷贝至这里,除了Android工程中的src文件夹,将其它文件夹全部拷贝至Plugins->Android文件夹中。最后在Plugins->Android文件夹中创建bin文件夹,然后将刚刚生成的.jar文件拷贝进来,jar的名称可以随便修改,但是jar包里面必须是com->xys->你的class文件,否则运行程序后提示找不到类文件。

  6. 接下来就是如何在C#中调用android的方法的代码了。

    加入如下代码。

    AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

    AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");

    jo.Call("StartActivity0","第一个Activity");

    先得到AndroidJavaClass,然后得到AndroidjavaObject就是当前Activity的对象,也就是我们在上面创建的主UnityTestActivity.JAVA。拿到它的对象后调用jo.Call()参数1表示调用UnityTestActivity.JAVA类中的方法名称,参数2表示该方法传递过去的参数。如下图所示:“第一个Activity”与“第二个Activit”就是我在C#中传递过去的字符串。

  7. 7
    发布成android平台apk

最新文章

  1. jQuery.Ajax IE8 无效(CORS)
  2. Web之路笔记之三 - 使用Floating实现双栏样式
  3. 《java集合概述》
  4. 生成iOSAPP的二维码
  5. Hive conf issue
  6. python 添加类属性
  7. 【转载】C内存分配
  8. 指针直接赋值为整型AND利用宏定义求结构体成员偏移量
  9. acFileStorage equivalent
  10. .net core 11
  11. [原创.数据可视化系列之十二]使用 nodejs通过async await建立同步数据抓取
  12. Perl正则表达式例子
  13. java 基本类型包装类,system类,Math类,Assrays类,大数据运算
  14. [LeetCode] Find Eventual Safe States 找到最终的安全状态
  15. iphone怎么投屏到电脑屏幕上
  16. 洛咕3312 [SDOI2014]数表
  17. Linux dd命令中dsync与fdatasync的区别【转】
  18. 【CF908G】New Year and Original Order 数位DP
  19. 11-[CSS]-标准文档流,display,浮动,清除浮动,overflow
  20. npm使用过程中的一些错误解决办法及npm常用命令和技巧

热门文章

  1. python 正则匹配
  2. 牛客练习赛48 C,D,E
  3. 笔记68 Redis数据库
  4. fzu 1901 next+脑洞
  5. react-router v3和v4区别
  6. elementUI 日期时间选择器 只能选择当前及之后的时间
  7. Vue学习笔记【2】——Vue指令之 - v-cloak、v-text和v-html
  8. (转)短信vs.推送通知vs.电子邮件:app什么时候该用哪种方式来通知用户?
  9. CF B. Planning The Expedition
  10. Core Dump总结