Unity 与 Android交互

3回答

Unity 与 Android交互

提问者 滴血红豆 2017-05-26 128浏览
网上有很多关于这一方面的帖子,试了很多都是有问题的,可能是因为版本的原因,这里我写出关于现在unity版本的教程,希望对大家有所帮助,不需要走太多弯路。 
环境要求: 
1.     unity3d 5.4.0f3 
2.     Android Developer Tools(Eclipse
  
在开始之前,这里先说明一下,这篇教程没有太多技术上的东东,以操作为主,所以这里不会讲太多理论的知识。如果大家想要进行理论知识的补充,建议在操作成功以后,再去谷歌有关的资料,这样会更加明朗。祝大家学习愉快!! 
开始啦~~~ 
1,首先新建android工程 

给项目取名 

 next-->> 

注意:这里最好勾选上,好处待会儿下面讲 

 
2,创建工程以后,我们需要把unity的工具包引用过来,在eclipes右键工程目录->build path->Add 
External Archives选项。 

Unity工具包路径在 
X:UnityEditorDataPlaybackEnginesAndroidPlayerVariationsmonoReleaseClasses(x为盘符)目录下的classes.jar文件。 

完成后,打开MainActivity类,把该类默认继承的Activity改成继承UnityPlayerActivity类, 
然后把不要的代码去掉,如把onCreate函数里面的setContentView(R.layout.activity_main);删掉,并且把onCreateOptionsMenu函数删掉(如果你不需要的话)。 
删掉以后长这样子: 
 
3.我们写一些简单的测试代码,如下 

保存以后eclips会自动生成编译好的jar包,在bin目录下面,这就是为什么上面需要勾选的原因
看,这个就是我们要的jar包,待会儿给unity使用 

4.新建一个Unity3d工程,新建的过程这里就不介绍了。 
在Assets目录下面新建一个Plugins文件夹,放插件用的文件夹,在Plugins目录下面新建一个Android文件夹,以后把安卓的东东会放到这里下面,目录长这样 

5.然后要拷贝两个文件过来这里, 
①一个是刚刚的那个jar包。还记得在哪里吗?在eclipes的bin目录下面 
②就是在你的unity3d安装目录里面的AndroidManifest.xml文件,路径是: x:UnityEditorDataPlaybackEnginesAndroidPlayerApk(x是你的安装盘符) 
我的路径是 

其它两个文件夹不用理它 
注意:这个千万不能用eclipes里面的,会报错. 
两个拷贝完成后目录长这样 

6.ok,现在我们要对AndroidManifest.xml进行简单的配置 

如上图: 
第一处要改成你自己的项目包名,包名在哪里找呢?就在创建项目时候取名字的时候的那个框
什么?没有注意看?那怎么办呢?没事,在代码里面到处都是,看这里 

好,把包名填好了,上图的第二处就是填写你jar包的入口类。就是MainActivity.java类,记得要加上包名哦。 
5.在unity方面,在写c#代码之前,我们还有一个地方要配置,就是android平台界面的配置,看下图 

这里的包名要跟android的包名要一致才行哦。 
6.好了,下面开始写c#测试代码了 
在写代码之前我们先用UGUI在场景创建一个button和text,用于待会儿测试。 
如下图所示: 

然后,随便创建一个类,挂到场景的任意物体上,开始写代码了 

在onClick函数里面加入了如下代码
AndroidJavaClass uintyPlayer = new ndroidJavaClass("com.unity3d.player.UnityPlayer");//参数必须为com.unity3d.player.UnityPlayer
AndroidJavaObject currentActivity = uintyPlayer.GetStatic<AndroidJavaObject>("currentActivity");//参数必须为currentActivity
var result = currentActivity.CallStatic<int>("sum"new object[] { 1, 2 });

textFile.text = result.ToString(); 
  
7,写完了以后进行打包,然后安装到android手机或虚拟机上进行测试 

图片:22.jpg


快来消灭0回答吧

{{ dataList.answer_count | view-format }}回答
  • 遇女心惊 2017-05-26 18:37
    我照着教程做了一遍,最后点按钮是出现这个错误,能帮忙看看吗
    1评论
  • 追梦人 2017-05-26 18:47
    感谢楼主得方法 我已经解决了 试了网上得好多方法 进了无数得坑 最后楼主得文章照亮了我,终于成功了。我出现闪退得原因是我的unity得哪个classes.jar的文件在以前进行测试的时候让我破坏了,重新安了unity就好了,或者你打包的APK的安卓版本高于你的手机版本。
    0评论
  • Soulら小兮 2017-05-26 18:48
    补充一个问题现象。AndroidManifest放在了Android文件夹外面,因为放在里面发布出来的apk就会直接运行停止工作。
    0评论
  • {{ answer.user.NickName }} {{ answer.profession }} {{ answer.created_at | time-format }}
    专家回答
    {{{ answer.answer }}}
    {{ answer.answer_count | view-format }}评论
加载中... 查看更多回答