untiy与java数据交互

最近做一个项目,为同事提供接口,能使他在Unity中调用Android中的函数来实现QQ登陆并获取用户信息。按照一些书上和一些贴吧的东西弄了几天,有时候逻辑虽然都走通了,但是有时候还是会出一些问题,现在就将出现的一些问题做一个总结。
1、开发工具Unity3d eclipse,虽然android目前的开发已经普遍使用android studio但是这里建议你使用eclipse
2、言归正传,首先我们要定义android的接口,在创建接口之前,我们首先来创建项目。(这里针对没有使用过eclipse的同学)

3、配置最小的SDK和最大的SDK和编译的SDK(为什么要配置这个,简单理解一下,就是随着android操作系统的不断升级,发布给开发人员的api也随着升级,高版本SDK的某个新功能(接口)可能在低版本操作系统上用不了,进行一个容错性提示)。
为了保证package唯一最好是你们公司的域名倒序+项目名称,比如Google 就是google.com.test



4、一路狂奔到完成,在下面的界面,可以勾选Make is Libray(如果你的接口很复杂,可以暂时不勾选,使用Eclipse调试完毕后,打包的时候修改为选中,不会可以百度)

5、在定义接口之前,先简单说一下Activity,在创建完项目的时候,系统已经提供了一个Activity,默认的类名叫MainActivity,并且在androidManifest.xml已经配置为主Activity,程序一运行,首先就会创建这个Activity的实例,并且调用其生命周期方法。
Activity和普通的java类不同,他不能用new去实例化,只能由系统去创建。如果你去new他就是一个普通的java类,如果项目中有多个Activity,其他的Activity要想实例化,必须直接或者间接依赖MainActivity,他就好比一个入口。
在Unity脚本中,也只能获取MainActivity的引用.(如果上面的看不懂可以往下看6)
6、 由于程序一启动,首先创建MainActivity的实例,并且回调onCreate()等方法。我们的Unity的主界面是靠scene去渲染,所以删除MainActivity中setContentView();并且将继承关系改变。
    6.1:加入Unity提供的一个jar包(jar包的本质就是一个class库),jar包的位置在安装目录下面的Editor\Data\PlaybackEngines\androidplayer\development\bin(根据自己的实际位置找),classes.jar。
  
   6.2:使用非打包的形式加入jar包。(不要将classes.jar直接复制到libs下面去)
 选择项目/preferences/Java BuildPath../Library/Add External Jars

  6.3:删除不用的代码,改变继承关系.(一定要删除setContentView,因为他的界面是由Unity Scene提供)

7、增加方法(让其被Unity调用),这里我们就定义一个输出土司的一个方法,非常简单,Unity传递一个String类型的参数name,就可以输出土司Hello :name

8、再增加一个方法,能让他进行Activity的跳转。跳转之前我们讲一下Activity的创建。
  8.1:我们先创建 一个类。
   
   8.2:增加其继承关系,让他继承Activity 类并且重写其onCreate()方法。
  
   8.3:定义完毕的Activity类只是普通的java类,我们要在AndroidManifest.xml进行配置,让其成为一个Activity
  注意是在Application节点下面配置

  8.4到此Activity就配置完毕了,我们的Android程序就由2个Activity组成,第一个Activity的界面由Unity Scene到时候提供
第二个Activity是默认界面,下面我们修改SecondActivity的界面
  8.5:设置界面调用setConetentView();
 
 8.6:修改一下这个界面,android中的界面其实就是xml文件,通过树状结构管理View的层次
 可以在视图模式下拖拽组件,但是不是很好用 。

  8.7到这里我们SecondActivity的定义,配置,布局已经设置完毕。接下来我们在MainActivity中定义一个方法,用来在Unity调用,进行跳转
9.MainActivity定义一个方法,跳转到SecondActivity,很简单,就一个跳转


10、到此android的接口定义完毕,在打包之前,还需要干一些事情,这些事情如果不做,打包的东西有可能无法被调用
    10.0:修改项目Make is Libray 
    10.1:在Project菜单下 取消Bulild Autocomplie(自动编译)
    10.2 :clean一下项目
    10.3: Build Project一下项目


11.打包我们Android项目,按道理来说,打包的东西只需要class就可以,但是我们的项目中除了自己的class还有自动生成的
gen目录下面的东西,还有其他资源,为了不遗漏,干脆全部打包。res AndroidManifest.xml也被打包,这些只不过是垃圾而已。




12.到此Android的接口已经定义完毕。接下讲来如何在Unity中调用


1、创建Unity的应用

2、在Assets下面定义Plugins\Android文件夹

3、在Android下面定义bin 将11步产生的jar包加入bin,并且把项目中的res,assets,libs ,AndroisManifest.xml复制到Android目录下,这些都是Android的资源。

4、复制完毕后
最后的目录结构


5、稍微修改一下AndroidManifest.xml
 5.1打开安装路径下Editor\Data\PlaybackEngines\androidplayer\AndroidManifest.xml,

把里面红色部分复制到我们程序的AndroidManifest.xml中,copy完毕后


6.Unity中编写代码调用MainActivity中的函数


7、编译成apk
注意buildsetting设置一下


8、好了,我们把编译好的程序运行一下              
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是关于UnityJava前后端交互的文档内容示例: 1. 引 - 介绍文档的目和范围,说明UnityJava前后端交互的重要性和意义。 2.术选择 - 解释为什么选择使用Java作为后端语言,并说明UnityJava交互的方式和原理。 3. 后端搭建 - 详细描述如何搭建Java后端环境,包括安装Java开发工具、配置开发环境、启动服务等。 4. 接口设计 - 定义前后端接口的数据格式和协议,如JSON、XML等。说明接口的参数、返回值和可能的错误码。 5. Unity集成 - 介绍如何在Unity中集成Java后端,包括添加相关依赖库、配置网络请求、处理数据传输等。 6. 数据交互 - 示范如何在Unity中向Java后端发送请求并获取响应。包括使用HTTP协议、WebSocket或其他通信方式。 7. 用户认证 - 解释如何在前后端交互中实现用户认证和授权功能,保证数据安全性。 8. 异常处理 - 讨论前后端交互中可能出现的异常情况,并提供相应的异常处理机制。 9. 性能优化 - 提供一些建议和技巧,以优化前后端交互的性能,包括网络请求的批量处理、数据压缩、缓存等。 10. 安全性 - 强调前后端交互中的安全性问题,如数据加密、防止XSS、CSRF等攻击。 11. 测试与调试 - 介绍如何进行前后端交互的测试和调试,包括单元测试、集成测试、接口调试等。 12. 部署与运维 - 提供部署和运维UnityJava前后端交互的建议,包括服务器配置、日志管理、监控等。 13. 参考资料 - 列出用于设计和实施UnityJava前后端交互的参考资料,如文档、教程、案例等。 这些内容是文档中常见的部分,具体的文档内容可能会根据项目需求和实际情况进行调整和扩展。在编写文档时,应该清晰、准确地描述UnityJava前后端交互的步骤和技术细节,以便团队成员理解和实施。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值