Unity3d VR与Android项目关联

     前段时间,公司项目加了个新的需求(公司的项目基本都是视频类型),需要在原先的项目中加入现在比较流行的VR技术。(ps:当时的感觉就是一脸懵逼)当参考了其他APP的VR功能时,还是得先从学习Unity下手,学习基本的场景操作。如果有人跟我一样也是小白,建议去蛮牛和泰课在线去学习(有很多免费的,或者淘宝也有卖视频的),现在把做VR项目遇到的问题,撰此文予以记录,也算项目最终总结。


    开发环境: Unity3d  下载地址(www.unity3d.com)我用的是5.5 和 5.6 版本(因为电脑是windows 可以下载多个,目录要区分)、GoogleVR SDK(1.4版本)

   

  下面我把开发过程中遇到的问题都列出来(大部分问题都集中在与Android 项目合并、交互、打包)。


   1:项目关联  Unity是支持跨平台发布的,(Android平台包括Android apk、Gradlew、ADT)。通过File打开BuildSetting ,把需要打包的scenes打上对勾,选择


Android平台,(一定记住这时候点击switch platform,系统会默认导入Android配置,点击过一次以后下次就不可点击了),然后选择playerSetting (这里面包括项目名


称,公司名称,签名文件,启动动画,具体的自己去看吧) !!!由于是VR项目,Virtual Reality Supported必须选,可以借鉴第二张小图。


   Unity5.5版本 是没有cardbord 和 DayDream选项的,所以选择None.            Unity5.6版本是可以选择的。 


    这里还需要一提的导出项目的时候,gvr自带的aar包一定要编译到我们的工程中。另外就是Mainfast的配置,这里就不多说了,So Easy !  

Unity3d VR与Android项目关联         

 Unity3d VR与Android项目关联


      2 :返回按钮监听 

 Android 有物理返回键,点击物理返回键从Unity退出,然后发现自己的项目挂了,并且每次都会重新创建。所以,给Unity或者自己项目的主Activity加入proess。这样就

可以避免挂掉。体验也就自然而然的上去了(前面提到这种方法发现在数据交互的时候,由于不在同一个进程,所以,数据会有问题,)。


      3: 启动过程黑屏问题 

当从我们的项目跳转到Unity界面的时候,UnIty是自带启动动画的,但是我测试了下这个时间最长的时候得10s 这个体验就太差了。然后翻阅资料,把Unity开发工具 **,

关闭启动动画,加入自定义的图片,测试一下发现最多2s基本都是秒起。


      3 :视频播放问题  

前期都在纠结一些小的问题,马上要提测得时候,发现最重要的视频播放功能不行了,mmp,彻底奔溃,打包运行都不会报错,就是视频不可以播放。(因为支持Android 和

 IOS两个平台,视频播放使用的插件是EasyMovieTexture,IOS那边一点问题没有),后来测试发现是Unity打包的问题,少了视频播放的so库文件。


     4:图片缓存问题  

       图片缓存的代码网上很多,这里就不提了,主要说一下在Android平台缓存失败的原因,避免入坑。因为windows和IOS 都是用沙盒来进行缓存,所以,这次的问题依

然是出在Android平台,我的第一直觉就感觉是权限原因,后来仔细看了看是打包的时候 Write Permission 默认是沙盒,Android需要选择SD卡(选择SD卡其实也就是

MainFast多加了读写的权限)


 5:语音搜索库的问题 

这其中还用到了语音搜索(ps:这块是同事开发的),小Demo运行的很嗨,加入项目,与VR融合,报错,加载不到库文件,但是库文件明明存在,后来把库文件放到主项目的

其他包下面,好了(虽然我也不知道什么原因)  后续的问题还会继续在此记录。

 6: Unity 导出来的Android项目Mainfest里的读写权限  android:maxSdkVersion  需要删掉。