DayDreamSDK
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);}}
}
![](/assets/blank.gif)
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";}
}
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和所接的项目中
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由一个特定的相机渲染,
DayDream的一些注意事项:
(1)在GvrEditorEmulator上面挂载的GvrEditorEmulator脚本
![](/assets/blank.gif)
(2)在GvrControllerMain上面挂载的GvrControllerInput的脚本
![](/assets/blank.gif)
遇到的一些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选择为高精度,如下:
![](/assets/blank.gif)
(3)将"CosmosCrash2_Front" 拖入File -- Build -- PlayerSetting -- Default ICON
![](/assets/blank.gif)
![](/assets/blank.gif)
DayDreamSDK相关推荐
最新文章
- 2017美国人工智能和机器学习行业种子投资首次下降
- VBS基础篇 - wscript 对象
- 【树型DP】BZOJ1564 二叉查找树(noi2009)
- 中国18岁美女机器人:出得厅堂,下得厨房,还要什么女朋友!
- java超级简单贪吃蛇_java实现简易贪吃蛇游戏
- Java Review - SimpleDateFormat线程不安全原因的源码分析及解决办法
- jQuery的HTML与CSS方法
- Ubuntu安装Google浏览器
- netty依赖_Netty系列之源码解析(一)
- 【ElasticSearch】Es 源码之 PersistedClusterStateService 源码解读
- Python查找列表中相加等于s的n个数字(combinations的使用)
- Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer
- Hi,我们的代码重构了
- java做eda开发_Java学习笔记——EDA事件驱动架构,你掌握了吗
- static 在C/C++中的用法总结
- Linux中更换软件源以及更新软件过程中报错的解决方法
- Guava源码解析五:Splitter源码解析
- python,在格式化字符串中使用半个大括号
- exe4j详细使用教程(附下载安装链接)
- jupyther_python基础系列06第六章 函数 面向过程的编程