【Unity + Google Cardboard】 VR环境配置

时间:2024-03-03 22:44:44

翻译一下google cardboard接unity的开发文档

前面

一直想尝试开发一个VR游戏试试……
Unity的官方文档在这里
一开始看的时候分不清各种VR设备,如果你也是的话——比如只有一个能塞进手机的带凸透镜的壳子,就用google cardboard这个SDK。因为其他的都有对应设备支持。

关于硬件,这里是谷歌cardboard官网。
这个网站有制作过程的中文介绍。
如果嫌麻烦的话某宝上应该有很多类似的VR设备。最好配一个手柄……

然后我对着下面这个尝试了一下一个example程序
这里的操作有单机、双击、拖动画面等,一个正常的蓝牙连手机的游戏手柄应该就可以。

这个视频覆盖了这里要介绍的部分,一些内容可以结合下面的翻译。

其他资料:
https://blog.csdn.net/suhao15330369126/article/details/53646227
一个比较详细的介绍。

正文

翻译的是官网上关于Unity开发的部分。可能部分忽略Daydream相关的。

设置你的开发环境

硬件要求:
- Daydream白日梦:你需要一个Daydream电话和一个Daydream View
- Cardboard:您需要一台运行Android 4.4’Kit Kat’(API级别19)或更高版本的Android设备以及一个Cardboard查看器。

译注,上述应该是或的关系而不是都必须

软件要求:
- 安装Unity:
推荐版本:LTS版本2017.4或更新版本
最低版本:5.6
确保在安装过程中选择了Android构建支持组件

Android构建支持组件

确保您的环境已针对Android开发进行配置。
请参阅Android SDK / NDK设置的Unity指南。

下载适用于Unity的Google VR SDK

发布页面下载最新的GoogleVRForUnity _ *。unitypackage。

SDK包含以下Daydream和Cardboard演示场景:

场景 描述
HelloVR 简单的VR游戏,您可以在其中找到并选择几何形状
KeyboardDemo Daydream 在UI画布上显示键盘输入
PermissionsDemo Daydream 显示正确的用户权限请求流程
VideoDemo 显示通过播放或远程流式传输使用立体声或360°视频的各种方式

创建一个新的Unity项目并导入Google VR Unity软件包

  1. 打开Unity并创建一个新的3D项目。
  2. 选择Assets > Import Package > Custom Package.
  3. 选择您下载的GoogleVRForUnity _ .unitypackage*文件。在 Importing Package对话框中,单击Import
    如果提示,请接受任何API升级。

配置构建设置和播放器设置

  1. 选择File > Build Settings.
  2. 选择Android并点击Switch Platform
  3. Build Settings窗口中,点击Player Settings

配置以下Player Settings

Setting Value
Player Settings > Other Settings > Virtual Reality Supported Enabled
Player Settings > Other Settings > SDKs 单击+并且选择 Daydream or Cardboard.
Player Settings > Android > XR Settings > Virtual Reality SDKs > Daydream > Positional Head Tracking 单击+并且选择Disabled, Supported, or Required.
Player Settings > Other Settings > Minimum API Level Daydream: Android 7.0 ‘Nougat’ (API level 24) or higher. Cardboard: Android 4.4 ‘Kit Kat’ (API level 19) higher

在Unity中预览演示场景

  1. 在Unity Project窗口中,转至Assets > Google VR>演示>场景。打开GVRDemo场景。
  2. 按下Play按钮。在游戏视图中,您应该看到渲染的演示场景。
    请注意,虽然这里的场景是单色的,但手机上的渲染将是立体的。 Unity可能会将此警告消息显示为提醒:
    编辑器模式不支持VRDevice白日梦。请在目标设备上运行。

  3. 使用模拟控件与场景进行交互:

类型 模拟操作 该怎么做
头部移动 转动头部 按住Alt +移动鼠标
倾斜您的视角 按住Ctrl +移动鼠标
Cardboard输入 按钮按下 单击游戏视图中的任意位置
Daydream输入 更改控制器方向 按住Shift +移动鼠标
点击触控板按钮 按住Shift键并单击左侧
点击应用按钮 按住Shift键并点击右侧
单击主页按钮以重新启动 按住Shift并单击中键
触摸触摸板。 要查看控制器,请将视角向下倾斜 按住Ctrl
更改触摸板上的触摸位置。 要查看控制器,请向下倾斜视图 按住Ctrl +移动鼠标

4. Daydream:(可选)在编辑器中,您可以在播放模式下使用实际的Daydream控制器,而不是模拟控件。为此,请使用即时预览。

准备您的设备

也就是你的安卓手机

要准备您支持的设备,请启用开发人员选项和USB调试

在您的设备上构建并运行演示场景

  1. 使用USB将手机连接到电脑。
  2. 选择File> Build and Run。
    Unity将您的项目构建到Android APK中,并将其安装到设备上并启动它。
  3. 将手机放入您的查看器并尝试演示。

会检测手机是横屏还是竖屏,横屏情况下才会开始

设置Unity支持

这个是这一篇文档的一部分,感觉比较重要所以拖了过来(???)

要在您的应用中包含控制器支持,请将以下预制件(prefabs)添加到您的场景中:

预制名称 场景中的位置 说明
GvrControllerMain 场景中的任何地方 主控制器预制,负责管理控制器状态。包含GvrControllerInput组件,它是控制器API的主要入口点。
GvrControllerPointer !!在主摄像机边上 Daydream控制器预制件。提供控制器,激光和光罩可视化,并作为工具提示和自定义可视化的附加点。
GvrEventSystem 场景中的任何地方 直接替换Unity的预制事件系统。包含GvrPointerInputModule组件而不是Unity的StandaloneInputModule。让Daydream控制器使用Unity事件系统。
GvrEditorEmulator 场景中的任何位置 编辑播放模式下的相机控制器。让您用鼠标或触控板模拟用户的头部运动。
GvrInstantPreviewMain 场景中的任何位置 编辑器播放模式即时预览控制器。让您可以将立体声预览流式传输至手机,并在编辑器中使用实际的Daydream控制器。

最终的场景将如下所示:
布局

如果不做这样的操作的话导出的apk在Android运行还是正常的,但是没有办法在Unity内预览模拟事件。