美文网首页android 集结号unityUnity跨平台技术分享
在Android(AS)中调用unity场景(view)

在Android(AS)中调用unity场景(view)

作者: 咸鱼的酱 | 来源:发表于2017-09-19 11:34 被阅读80次

    经常地,我们需要使用unity来调用安卓的一些原生功能,比如toast的啊,或者其他的一些功能,这些在网上也可以找到许多。

    但是。往往会有一些特殊的需求需要在安卓中调用unity。具体是什么需求会用到呢?能找到这里的各位心里肯定有自己的答案。目前网络上大多的资源都是使用的eclipse来调用。但是如今AS已经慢慢成为主流。新版本的unity都已经支持将工程发布为AS支持的Gradle。

    本文就主要讲解了如何使用AS调用unity工程。

    1.unity的工程包名以及所支持的API版本需要和安卓程序相同(不要问我不相同可不可以,可以。但是谁知道会遇到什么坑。)

    2.其次,要设置包的keystore。因为只有设置了keystore才可以发出工程文件而不是apk文件。


    3.这样就可以发布成AS可以使用的工程文件了


    找到你发布出的工程文件,unity这部分就算是完成了。

    AS

    1.进入安卓工程中


    通过导入模块的方式把unity打包出的安卓工程包导入进来。让其作为一个模块来调用。

    可以看一下setting.gradle中的include是否包含了你的工程,当然正常情况下肯定是包含了。

    这样非常方便管理,而且对先前的安卓工程几乎没什么影响。其次我们要修改unity工程中的一些配置。


    首先是build.gradle中的。需要修改的我已经用红线和圈标出来。

    1,首先就是将我们unity的工程修改为library。因为我们的包只是作为附加模块。

    2.这个时候如果你build你会发现他出错了。因为我们将其改为library后。defaulyconfig中的appid已经不需要了,所以要将他删掉。图中在花圈处已经删掉。


    其次,需要修改的是unity打出来包中的AndroidManifest.xml。安卓在其编译时会将所有的模块中的Android manifest合并起来,所以我们需要修改的只是多个manifest中相同的地方,因为不同的地方合并后不会冲突。

    如图所示,我们注释掉了其中intent-filter中的Main和Launcher这两行,这两行的意思是将该activity作为主页和启动页,很显然,我们需要将安卓的页面作为主页和启动页,所以这两行需要删掉。如果你unity工程中用到了很多第三方的插件,那么你就要注意一下,看一下是不是所有的标签都正确没有错误,我这边可是遇到过,因为使用插件过老,标签过时了的情况。

    配置到此也就完了。

    接下来就是代码调用了。

    简单的调用如图所示。


    通过在安卓中点击按钮然后跳转的unity的场景。亲测可用。


    在此要特别感谢我的老友thorn。在安卓这块给了我很多帮助。

    如果你有什么意见或者建议千万不要吝啬评论噢。

    相关文章

      网友评论

      本文标题:在Android(AS)中调用unity场景(view)

      本文链接:https://www.haomeiwen.com/subject/gvdwsxtx.html