DayDream简介
是谷歌在2016年11月10日发布的一个虚拟现实(VR)平台
是由一个头盔、一个控制器和很多兼容智能手机组成(头盔为布)
DayDream平台的官方文档:https://developers.goole.com/vr/daydream/overview
下载DayDream的SDK:
(1)打开DayDream平台的官方文档
(2)Google VR SDK for Unity [可以先看Demo,然后将其SDK导入游戏中]
(3)接DayDream的SDK需要使用Unity5.6以上
DayDream控制器坐标系:
![DayDreamSDK_第1张图片](http://img.e-com-net.com/image/info8/4441ed0a7e9b48539824a3591f97f968.png)
DayDream控制器的说明:
从上到下的三个键依次为:确定键(ClickButtonUp、ClickButtonDown)
返回键(AppButtonUp、AppButtonDown)
菜单键(HomeButtonUp、HomeButtonDown)
eg:如果不知道返回键的监听是那个,可以在Project面板中搜索Input,如果不知道控制器上面的那个键是什么键,可以查看带有Input的脚本。
如果不知道控制器上面的返回键叫什么,可以创建一个Scene场景:仿照Demo,自己加上一些代码,以DayDream的SDK的Demo为例,
在重新创建一个场景,点击不同的按钮,跳转到相应的Demo
(1)创建一个UGUI的Button,点击控制器上面的按钮,Text可以显示点击的分别是那个按钮,对应跳转到那个场景
(2)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class TestManager : MonoBehaviour {
public void Click(int index) {
if (index == 1)
{
// LoadSceneMode:场景加载模式
// Single:关闭所有场景,只打开一个场景
SceneManager.LoadScene("GVRDemo", LoadSceneMode.Single);
}
else if (index == 2) {
SceneManager.LoadScene("KeyboardDemo", LoadSceneMode.Single);
}
else if (index == 3)
{
SceneManager.LoadScene("PermissionsDemo", LoadSceneMode.Single);
}
else if (index == 4)
{
SceneManager.LoadScene("ScrollingUIDemo", LoadSceneMode.Single);
}
else if (index == 5)
{
SceneManager.LoadScene("VideoDemo", LoadSceneMode.Single);
}
}
}
(3)将相应的Button设置为相应的index
(4)创建一个Text,编辑脚本TestInput.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TestInput : MonoBehaviour {
public Text text;
// Update is called once per frame
void Update() {
if (GvrControllerInput.AppButtonUp)
text.text="AppButtonUp";
if (GvrControllerInput.AppButtonDown)
text.text="AppButtonDown";
if (GvrControllerInput.ClickButtonUp)
text.text="ClickButtonUp";
if (GvrControllerInput.ClickButtonDown)
text.text="ClickButtonDown";
}
}
这样,控制器分别对应的键就找到了。
DayDream的摄像机
在DayDreamSDK的官方Demo中,可以看到DayDream的摄像机名为Player,下面为Player的结构
Player
Main CameraDay Dream摄像机
GvrReticlePointer
DayDream头盔上面的点
GvrControllerPointer DayDream控制器上面的点
ControllerVisual DayDream控制器模型(若手里有枪,把枪放到此控制器模型的位置上面,将此控制器的模型隐藏,这样,控制器的模型就换成枪的模型)
Laser DayDream控制器上面的射线
Reticle
除此之外,你会发现官方的Demo除了这些,每个场景必须还会有的是
GvrEditorEmulator DayDream平台的模拟器(在电脑上测试的时候用到,可以减少一点打包测试的麻烦)
GvrEventSystem DayDream平台的EventSystem
GvrControllerMain DayDream的GvrControllerInput脚本在此挂着
同时,在DayDream的官方Demo中还可以看到,每个Canvas上面都加了GvrPointerGraphic Raycaster(需要注意的是DayDream的Raycaster和所接的项目中
使用UGUI的EventSystem不要同时使用,可能会造成,控制器打击不到UI的情况)所以,DayDream的摄像机这一套在接入SDK的时候是必需的。
PlaySetting的设置:
在File -- BuildSetting -- PlayerSetings -- Other Settings
先勾选 Virtual Reality Supported之后选择平台,在这个选择DayDream平台,以及配置好Minmum API level(在这里选择的是Androud7.0 API level24)
注意:接入SDK之前,再接SDK首先配置好SDK和JDK的路径。
Canvas的设置(当项目中有些场景位置不对的时候):
任意选中一个场景,Canvas Inspector面板中的RenderMonde中先选择Screen Space - Camera模式 (Canvas由一个特定的相机渲染,
相机的设置会影响UI)将DayDream下面的MainCamera拖进Event Camera,之后再将RenderMonde在选择WordSpace模式(使Canvas像场景中的其他对象一样渲染)
DayDream的一些注意事项:
(1)在GvrEditorEmulator上面挂载的GvrEditorEmulator脚本
在电脑中测试的时候,按下Alt可以和鼠标、Ctrl和鼠标可以转换视角
(2)在GvrControllerMain上面挂载的GvrControllerInput的脚本
在电脑中测试的时候 Shitf和移动鼠标可以改变方向、Shift和点击鼠标左键可以点击进入(相当于手柄上面的ClickButton键)等
遇到的一些Debug:
1、DayDream上面的Mask遮罩问题
在File -- BuildSetting -- PlayerSetings -- Other Settings -- Virtual Reality SDKs -- DayDream -- Depth Format -- 24-bit depth | 8-bit depth
2、DayDream上面的射线无法检测到UI的问题
因为有两个Raycaster DayDream上面的Raycaster和Canvas上面的Raycaster,去掉Canvas上面的Graphic Raycaster 其次就要检查DayDream的那一套预制体
3、无拖尾效果
因为在Unity5.6之后,将有拖尾效果的物体作为一个物体的子物体,那么这个球就没有拖尾效果,需要修改代码
4、点击UI界面发球
使用协程的话,项目中走不到协程的方法(没有找到原因),后来使用的TimeManager解决的[将代码TimeManager.cs和UI_GamePause_Manager.cs添加到代码片段]
5、道具的回归位置偏了
因为物体的Tag值没有设对
DayDreamVRINCO
DayDream的项目上传的时候DayDream的VRHome中要有图标
DayDream VRHome中的图标是由两张图组成,一个为前景图,一个为后景图(eg:两张图的名字分明为"CosmosCrash2_Front"和"CosmosCrash2_Back")
(1)将两张图片的Texture Type设置为Defult,不要勾选sRGB和Alpha is Transparency 以及Compression选择为高精度,如下:
(2)将项目本身的ICON(在这里为"desktop_icon") 选入File -- Build -- PlayerSetting -- ICON,勾选Override for Android,不要勾选Enable Android Banner
(3)将"CosmosCrash2_Front" 拖入File -- Build -- PlayerSetting -- Default ICON
(4)File -- Build -- PlayerSetting -- OtherSettings -- DayDream下面的Foreground Icon和Background Icon选择相应的前景和背景图
这样,在DayDream的VRHome中就会有了VRICON的图标。