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
本文由崔维友 威格灵 cuiweiyou vigiles cuiweiyou 原创,转载请注明出处:http://www.gaohaiyan.com/1836.html
承接App定制、企业web站点、办公系统软件 设计开发,外包项目,毕设