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控制器坐标系:



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 framevoid 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的图标。

DayDreamSDK相关推荐

最新文章

  1. 2017美国人工智能和机器学习行业种子投资首次下降
  2. VBS基础篇 - wscript 对象
  3. 【树型DP】BZOJ1564 二叉查找树(noi2009)
  4. 中国18岁美女机器人:出得厅堂,下得厨房,还要什么女朋友!
  5. java超级简单贪吃蛇_java实现简易贪吃蛇游戏
  6. Java Review - SimpleDateFormat线程不安全原因的源码分析及解决办法
  7. jQuery的HTML与CSS方法
  8. Ubuntu安装Google浏览器
  9. netty依赖_Netty系列之源码解析(一)
  10. 【ElasticSearch】Es 源码之 PersistedClusterStateService 源码解读
  11. Python查找列表中相加等于s的n个数字(combinations的使用)
  12. Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer
  13. Hi,我们的代码重构了
  14. java做eda开发_Java学习笔记——EDA事件驱动架构,你掌握了吗
  15. static 在C/C++中的用法总结
  16. Linux中更换软件源以及更新软件过程中报错的解决方法
  17. Guava源码解析五:Splitter源码解析
  18. python,在格式化字符串中使用半个大括号
  19. exe4j详细使用教程(附下载安装链接)
  20. jupyther_python基础系列06第六章 函数 面向过程的编程

热门文章

  1. 基于正态分布的抽样分布-卡方分布
  2. 14.String常量池:什么是字符常量???常量池在内存空间中的位置在哪里???判断s7、s8、s9是不是字符常量???代码
  3. 微信小程序实现双指缩放图片功能
  4. CentOS 8使用固定的阿里云yum源
  5. 人工智能技术及项目产品开发流程
  6. mysql防止误删除_mysql防止误删除的方法
  7. 超详细linux基本命令学习以及hdfs命令详解
  8. 如何用Python把篮球和鸡联系起来
  9. Windows10 Edge 浏览器不能访问网页
  10. list<String> 转数组