Daydream控制器设置指南

在本篇文章中,将开始设置Daydream控制器。将涵盖从将SDK添加到游戏,然后设置Daydream控制器在游戏中工作的所有内容。

正如可能会预料到的,Daydream控制器预制体并没有设置激光和指针。这就是为什么,今天将看看如果想要的话,如何启用它们。

让快速了解一下如何控制API,然后开始设置控制器。

设置Daydream控制器

已经在第42天稍微看了一下控制器,但让更仔细地看看这个。

如前所述,与Cardboard控制器相比,对于Daydream,有更多的输入可以工作:

  • 触摸板
  • 应用按钮
  • 主页按钮

主页按钮用于在不同的Daydream应用之间导航和重新定位控制器,所以不会有任何控制器围绕它。

有了这个,让快速看看如何使用Daydream控制器。

令人惊讶的是,找不到谷歌在他们的SDK教程中的说明!不得不回到第42天看看写了什么,令惊讶的是,文档中的说明被移除了!

幸运的是,复制了代码片段,并记下了应该做什么(过去的真聪明!)

除非有什么变化,将使用GvrControllerInput来获取控制器的输入。

在研究如何与游戏世界互动之前,让弄清楚如何与游戏互动!

设置场景

需要做的第一件事是为游戏创建一个场景。

Unity中创建一个新项目,称之为Daydream Controller Playground:

到目前为止,应该知道怎么做,特别是如果来自第7-8周。

按照第7-8周第1步的说明。这意味着导入GoogleVRSDK,切换到Android,创建环境,并在将GvrReticlePointer添加到游戏时停止。

此时,将添加特定的Daydream预制体。

将位于Assets/GoogleVr/Prefabs的GvrControllerPointer作为Player在游戏层次结构中的子项添加。具体来说,希望它是Main Camera的兄弟,不想将其作为子项添加,否则每当移动相机时,控制器也会被移动。

接下来,将GvrEventSystem预制体添加到游戏层次结构中,这将是能够用控制器的准线指向其他游戏对象所需的。

GvrControllerPointer包含2个子游戏对象:

  • ControllerVisual,渲染控制器
  • Laser,渲染激光瞄准器

设置遥控器以正确显示

现在已经设置了控制器,可能会发现让控制器工作涉及的一些问题:

  • 很难找到控制器,因为激光不在。
  • 控制器可能会埋在地板下。
  • 当控制器向上靠近脸时,它会消失。

为什么Daydream元素示例有效,而控制器不工作,不知道答案,因为它们都是相同的预制体,但让看看如何逐一解决这些问题,以便可以修复一切。

第一个问题是不知道控制器在哪里。除非有一个分屏,场景标签和游戏标签,否则很难定位控制器。

如何修复这个问题?在Daydream控制器上启用激光预制体。出于某种原因,GvrControllerPointer预制体的默认设置没有打开激光视觉。

这是必须要做的:

在游戏层次结构中,找到GvrControllerPointer > Laser,在GvrLaserVisual脚本中,有4件事需要改变。

  • 缩小激光 - 取消选中这个框。这是看不到激光瞄准器的主要原因,缩小得太多,以至于看不到它在哪里。
  • 激光颜色 - 这是激光的颜色,把它设为黄色。
  • 激光颜色结束 - 随着激光的延伸,它将逐渐变成这种颜色。只是选择了一个类似的黄色。
  • 最大激光距离 - 这允许延伸激光,现在激光很短,让把它变长。将值更改为

完成后,应该有类似的东西:

现在当玩游戏时,应该能够看到一个激光瞄准器:

太好了!

现在可以看到控制器了!接下来的问题是控制器会掉到地上。这是因为玩家角色离地面太近了。

记得在某个地方读到,Daydream控制器是为大约5英尺高的人配置的,或者具体来说就是1.6米。

如何在Unity中得到这个值?事实证明,Unity使用的测量单位实际上是米!当将游戏对象的Y位置向上移动1时,在游戏空间中向上移动了1米。

让把玩家向上移动!

在游戏层次结构中选择Player,并将位置值更改为(0, 1.6, 0)而不是(0, 1, 0)。

现在相机和控制器(子对象)足够高,以至于控制器不会掉到地上。

如果实际上检查Daydream Element包并检查玩家位置,会看到它们也被提高到Y位置值为1.6(认为是从哪里得到这个数字的?)

接下来也是最后需要解决的问题,以使控制器工作,是为什么当提高它时,控制器会消失,因为它离相机越来越近。

这个问题令人头疼,但终于弄清楚了发生了什么。

问题在于Main Camera。具体来说,指的是Main Camera中的Camera组件中的Clipping Planes选项。

主要问题是Near选项设置为0.3。这基本上意味着一旦一个物体进入相机0.3单位以内,就不会再渲染它了。这正是控制器现在正在发生的事情。

那么如何修复这个问题呢?让减少这个数字!

在Main Camera中,将Near选项更改为1。

完成后,会有这样的东西:

当再次尝试使用控制器时,可以看到可以将遥控器更靠近,而它不会消失。

有了这一切,现在有了所有必要的配置,以便控制器开始编码。

希望在这篇文章之后,已经正确配置了游戏环境,以便可以开始编码。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485