canvas教程

实现Unity和Android进行交互(2)

字号+ 作者:H5之家 来源:H5之家 2017-04-10 09:02 我要评论( )

app-debug.aar ??将app-debug.aar文件解压,得到根目录下的classes.jar文件,请注意这个classes.jar文件并不是最开始从unity中导入到android的classes.jar文件,而且你写的android代码的class文件的压缩包(可以解


app-debug.aar


??将app-debug.aar文件解压,得到根目录下的classes.jar文件,请注意这个classes.jar文件并不是最开始从unity中导入到android的classes.jar文件,而且你写的android代码的class文件的压缩包(可以解压看看里面实际的内容)。之后unity所需要使用的是res文件夹下的文件,classes.jar(android的)和AndroidManifest文件。


解压后的文件

(ps:理论上来说现在版本的unity是直接可以使用android的aar包的,但是博主在实际使用过程中一直会有问题,所以这边所使用的还是jar包和res文件的形式,如果有小伙伴使用aar成功的话请告知博主)

3 Unity上的操作 3.1 创建Unity项目

??打开unity,创建项目名称为UnityDemo,layout的格式改为2by3,project下修改为One column layout(纯粹是个人喜欢这种布局的方法,当然你也可以用其他的)。


One column layout


2by3


??往unity添加一个canvas(画布),设置render mode为screen space camera(跟随相机的模式),然后设置ui scale mode 为scale with screen camera 并设置x,y为600和400。


添加canvas


??往canvas中添加一个text和一个button,并调整他们的大小和位置,用于之后的事件操作和显示。


text


最终的ui显示


??然后将我们之前导出的jar和res文件拷贝到Plugins/Android文件夹下。


导入文件

3.2 编写unity脚本

??新建一个AndroidControl的C#脚本,并将其挂载到Canvas对象上。(直接通过鼠标左键拖动到Canvas上)。打开脚本,在OnStart()方法中获取android的MainActivity对象。

private AndroidJavaObject jo; { //获取Android的Java接口 AndroidJavaClass jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer"); jo = jc.GetStatic<AndroidJavaObject> ("currentActivity"); }

??首先获取unityPlayer实例,每个unity app在启动的时候都会有一个unityPlayer实例。通过获取该实例里面currentActivity对象,其实就是我们的MainActivity实例。我们可以在android studio中查看源码的方式知道为什么是获取这个currentActivity。


UnityPlayer


??创建方法ShowAndroidTime来获取系统时间并进行显示。

public void ShowAndroidTime () { string time = jo.Call<string> ("getNowTime"); jo.Call ("showToast", new object[]{ time }); }

??首先调用MainActivity中的getNowTime方法得到时间,然后在调用showToast方法让时间Toast出来。接下来是要对button设置点击事件去调用这个ShowAndroidTime方法。选中button,然后砸onclick点击+。由于我们的脚本是挂在到Canvas上的,所以需要选择canvas对面里面的AndroidControl脚本的ShowAndroidTime方法。


添加点击事件

3.3 导出Android app

??将scene保存,然后点击file-->build settings,选择platform为android,然后点击switch platform,同时将要导出的scene add进来。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Android学习笔记:Paint及Canvas的简单应用

    Android学习笔记:Paint及Canvas的简单应用

    2017-04-08 13:06

  • Node + FFmpeg 实现Canvas动画导出视频

    Node + FFmpeg 实现Canvas动画导出视频

    2017-04-05 18:03

  • Android Canvas练习(9)自已绘分割突出效果的饼图(Pie Chart)

    Android Canvas练习(9)自已绘分割突出效果的饼图(Pie Chart)

    2017-04-04 17:01

  • canvas实现钟表效果

    canvas实现钟表效果

    2017-04-04 11:04

网友点评
c