HisUnitySDK 1.6.4 使用文档
一、Android 开发环境搭建
1. 安装JDK
请下载并安装好JDK。JDK下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
2. 安装Android SDK
请下载和安装Android SDK。Android SDK被包含在ADT和Android Studio中,选其一即可。推荐使用Android Studio。
3. Unity中的Android设置
(1) 在安装Unity时,注意勾选Android Build Support。2019版本的Unity需要额外去Unity官网下载安装Android Target Support:
https://unity3d.com/cn/unity/whats-new/2019.1.0
(2) 装好JDK、Android SDK之后,请在Edit-Preferences-External Tools中正确设置Android的JDK和SDK路径
二、 构建自己的VR应用
1. 支持的Unity3D版本
目前HisUnitySDK插件支持以下Unity版本:
Unity3D 2018 4.2f1
Unity3D 2019.4.1f1
Unity3D 2020.3.1f1
请匹配这些版本,否则可能会出现问题。
2. 目录结构
HisenseSDK插件基于unity2018.4.2f1开发。如果您的版本是unity2018.4.2f1,导入插件时Unity会提示您升级。
请选择"I Made a Backup. Go Ahead!"。
3. 构建自己的VR场景
如上图所示拖拽预制体HisCameraRig到场景中,创建一个Button按钮,unity会自动创建一个Canvas,调整Canvas组件RenderMode模式为WorldSpace,添加HisUICanvas组件到Canvas即可完成一个基本VR场景的搭建工作,如果此时不能看到Button按钮,可以适当调整Canvas的缩放比例以及位置坐标, 点击运行按钮可以观察示例场景的运行效果
4. 示例场景
适配UGUI
-
在带有GraphicRaycaster组件的Canvas上挂载脚本HisUICanvas,如果场景中带有GraphicRaycaster组件的Canvas比较少,可以手动挂载,如果UI结构比较复杂,可以使用提供的自动化配置工具来自动配置.具体位置在编辑器左上角Hisense/ConfigHisenseCanvas。
-
按住Alt按键同时按住鼠标右键滑动鼠标,可以在编辑器下模拟头盔晃动,测试响应效果。
2D精灵响应
如果不希望射线可以穿过sprite,需要给sprite挂载一个3D碰撞体,同时给CenterEyeAnchor挂载组件HisPhysicsRaycaster,此时sprite可以正确挡住射线,但是如果精灵后方存在UI,精灵并不能阻挡UI点击事件的响应。
3D物体响应
如果不希望射线可以穿过3D模型,目标模型必须挂载一个碰撞体,同时给CenterEyeAnchor挂载组件HisPhysicsRaycaster,此时3D可以正确挡住射线,但是如果模型后方存在UI,模型并不能阻挡UI点击事件的响应.
2D/3D物体阻挡UI点击事件
挂载HisUIGraphicRaycaster到带有Canvas组件的物体上,调整BlockingObjects枚举类型ThreeD,此时2D/3D物体可以正常阻挡UI点击事件
手柄射线长度自适应
勾选HisPointerManager组件中的IsRayLengthAdaptive即可开启自适应射线,当目标物体距离相机很近的时候,默认射线可能会出现瞄点与射线位置偏移的问题,使用自适应射线即可处理此问题.
三、打包设置
1. 切换平台为Android 平台
2. Quality设置
打开Edit->Project Settings->Quality。
(1) 将VSync设置成"Don’t Sync"。
应用的帧率与屏幕刷新率相同为最佳,但受到性能影响,往往会低于屏幕刷新率。
一般在刷新率的一半以上还是可以接受的。SDK会自动处理垂直同步,所以这里需要关闭。
(2 ) 如果发现设备性能太差,可以将"Rendering""Anti Aliasing"设置成"Disabled"。通常在一体机上,"2x Multi Sampling"是一个比较常见的设置。
3. Player设置
(1)在Edit->Project Settings->Player->Settings for Android->Resolution and Presentation中,将"Default Orientation"改成"Landscape Left"。
(2)在Edit->Project Settings->Player->Settings for Android->Resolution and Presentation中,请勾选"Use 32-bit Display Buffer"。
(3) 目前的DPVRUnity Rendering SDK不支持Vulkan的Graphics API。因此,在Edit->Project Settings->Player->Settings for Android->Other Settings中,可勾选Auto Graphics API,若不勾选,推荐将OpenGLES3置于Graphics API列表顶层(不可将Vulkan置于顶层)。
(4) 在Edit->Project Settings->Player->Settings for Android->Other Settings中,可以开启"Multithreaded Rendering",这可以提升一定的应用的性能,但打开此选项时请小心,在某些Unity版本上勾选该选项可能导致设备死机或者应用闪退。
4. Time设置(推荐而非强制)
打开Edit->Project Settings->Time,设置"Fixed Timestep"为0.01。
5. 进行打包
修改ProductName,CompanyName,PackageName,MinimumApiLevel为19,设置完成之后进行Bulid,点击 Add Open Scenes将test 场景添加到打包场景,点击Build 进行打包