Android与Unity交互并且实现双屏异显解决方案

昨天刚结束了一个项目,写篇文章来总结一下。
项目需求:android实现双屏异显,并且副屏显示的是unity的内容。
硬件:深圳某厂的rk系列主板。
开发工具:android studio 3.4.1
方案:通过查阅资料得知android实现双屏异显目前有两个方案。
方案一:谷歌原生的Presentation类;
方案二:主板提供方给出的方案,在设置中打开双屏异显功能,并且在代码中调用控制音量加减键的方法来将想要在副屏上显示的内容分离出去;
需求分析:首先分析双屏异显的功能。既然谷歌提供了接口还是先用这个试试。先写个demo:balabala~(网上一大堆代码,这里就不重复了)。经测试没问题,可以实现双屏异显的功能;
好的,接下来再写个demo测试一下主板方提供的方案。但是这个方案有个问题。就是需要两个app,一个app启动另一个app,并且把它显示到副屏上。ok,经测试这个方案也可以实现双屏异显的功能,但是两个app交互起来可能会存在某种阻碍。
接下来就是研究怎么和unity交互的问题。通过查阅资料得知,android和unity交互还是要把unity打包成android项目比较好,那就这么办。和unity方面沟通让他给我打包了一个android的项目,拿到之后打开发现项目中有个UnityPlayerActivity。再上网继续查资料,得知android和unity交互的代码要写在这个activity或者某个继承这个类的activity中。必须是activity吗?双屏异显的第一种实现方案是继承自Presentation类,但是Presentation是继承的Dialog,说白了就是一个窗口分离出去实现的双屏。那么这个方案先pass掉吧,等有空回来再研究一下,因为一个app还是相对来说比较好把控一些。
好吧,既然这样,我们暂时就先用两个app吧,主屏的app用来显示android原生的内容,副屏的app用来显示unity的内容。代码就不写了,如果有需要的小伙伴可以私信我。我写一下它的步骤吧:首先拿到unity打包的android工程后,把它当成一个module引入到新建的副屏工程中,然后在UnityPlayerActivity类中实现和unity交互的方法。最后用主屏的app启动显示unity的app并且把它分离到副屏中去。两个app交互我用的是广播,多轮测试,无缝连接~
写完了,需要代码的小伙伴@我~

你可能感兴趣的:(Android学习之路代码笔记)