Android   Unity      Unity3D-5.3.5发布VR项目到Android   
文章目录  [隐藏]

1.U3D及DK下载安装

  Unity官网最新下载地址:http://unity3d.com/cn/get-unity 。Personal Edition(个人版)和Professional(专业版),Personal为免费,而Professional则收费。
  现在从官网下载的是个UnityDownloadAssistant-*.exe ,只有几百k,它还需要联网才能下载真正的U3D。
  如果是初次安装,一定要把 U3D5.* 和“Android Build Support”都选中:
  
而如果已经安装好了U3D5.* ,那么只选择“Android Build Support”即可。注意版本一致。


  安卓完毕启动Unity,菜单栏,Edit,Preferences,External Tools,右侧出现“Android”配置项,务必配置好:
  
  如果对已有的相关DK没有信心,可以点“Download”按钮自动下载相应版本。
JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html ,谷歌VR插件要求JDK最底1.7。
SDK:https://developer.android.com/studio/index.html ,至少要更新到5.0。
NDK:https://developer.android.com/ndk/downloads/index.html ,Unity5.3.5要求是r10e,否则NDK r10b is incompatible with IL2CPP. IL2CPP requires r10e(64-bit). 看起来还要求64位版。如果版本高了会报这个:unable to detect ndk version, please pick a different folder 。


  一切搞定后,新建一个3D项目。

2.Google VR SDK for Unity

  完成上面的操作只能发布一般的2D或3D游戏到安卓,还不能发布VR游戏。谷歌推出的前身为cardboard sdk 的unity插件,下载地址:https://developers.google.com/vr/unity/download ,看现在的名称也专业高端了贼多。
  除了提供的github项目地址,可以直接使用其提供的插件地址:https://github.com/googlevr/gvr-unity-sdk/archive/master.zip
  
下载后解压之,得到一个文件夹,里面有个至关重要的GoogleVRForUnity.unitypackage文件,及Simples等目录。


  Unity,Assets,Import Package,Custom Package... ,选择刚刚解压出的unitypackage文件,选择全部文件,导入即可。
  


  这时,在项目面板出现一些目录:
  
  

  想不到谷歌大婶给的宝贝也有错误,是Unity在诬陷?:
  
打开这个文件,将setupPortForwarding方法注释掉即可。
  
  

  依次展开“GoogleVR”,会看到2个demo项目,Controller和Headset:
  


  举例,点中HeadsetDemo,双击右侧的“DemoScene”即可打开,然后点击上方的“播放”三角按钮进行预览:
  


  使用Ctrl或Alt键配合鼠标就能看到在Android手机上运行时的效果。

3.发布到安卓

  File,Build Settings... ,进行一些必要的配置:


  首先,点击“Add Open Scenes”添加关卡:
  


  如果没有勾选“Google Android Project”右下角默认是“Build”和“Build And Run”,即发布为apk文件,当勾选以后,左边的“Build”变为“Export”,同时右侧的“BAR”为灰色不可用。
  

  此时无论是“Export”/“Build”还是“Build And Run”都会出现问题。点击下面的“Player Settings...” :
  


  记住应用名是“VRTest”。
  这还没完,都知道在android中一个项目必须指定一个类似“com.cuiweiyou.vr”这样的包名,so,
  


  终于,Export。选择一个空文件夹:
  
进度条跑完后关闭“Build Settings”窗口即可。


  打开刚刚选择的文件夹(一般会自动打开其父目录),发现有3个项目:
  
上面2个是Library项目,最下面的VRTest是目标项目。

4.导入到Eclipse

  看项目结构也不确定是Eclipse独享的,AS也能用吧:
  


  先import进gvr_android_common、unitygvractivity这2个library项目,然后import进VRTest项目。此时可能会出现jar包重复的问题。

[21:34:02 - GoogleUnityActivity] Found 2 versions of classes.jar in the dependency list,
[21:34:02 - GoogleUnityActivity] but not all the versions are identical (check is based on SHA-1 only at this time).
[21:34:02 - GoogleUnityActivity] All versions of the libraries must be the same at this time.
[21:34:02 - GoogleUnityActivity] Versions found are:
[21:34:02 - GoogleUnityActivity] Path: F:\android_workspace\workspace_vr\gvr_android_common\libs\classes.jar
[21:34:02 - GoogleUnityActivity] Length: 232149
[21:34:02 - GoogleUnityActivity] SHA-1: 14d8e2db765b78b2f6edbf655edb9d493314a257
[21:34:02 - GoogleUnityActivity] Path: F:\android_workspace\workspace_vr\unitygvractivity\libs\classes.jar
[21:34:02 - GoogleUnityActivity] Length: 14432
[21:34:02 - GoogleUnityActivity] SHA-1: acdb51ac0466607c5f05764c741a71735b6ed801
[21:34:02 - GoogleUnityActivity] Jar mismatch! Fix your dependencies



  莫慌莫慌,将两个library项目下libs目录中的classes.jar改个名字就可以了。

  然后右键VRTest,Properties,Android,右侧Library中确认其依赖的另外2个项目添加成功。


  最终项目结构是这样子的:
  
看起来还不错。
  

  在手机上的运行截图:
  
发现视图显示了一半,这难道是bug?


  鼓捣了半天,发现窍门了:
  

  


5.本文相关参数:
  JDK:jdk1.7.0_40X32
  SDK:更新到6.0
  NDK:android-ndk-r10e-windows-x86_64
  Eclipse:Mars.2 Release (4.5.2)
  ADT:23.0.6
  Untiy:5.3.5f1x64
  手机:Nexus5,5.1.1
  电脑:acer Aspire E1-471G,Win7x64,i5-3210M,4 GB
  VR设备:某某某(cardboard老前辈即可)


本文示例:https://git.oschina.net/vigiles/U3D_VR_Project_Export_2_Ard


承接App定制、企业web站点、办公系统软件 设计开发,外包项目,毕设