DayDreamSDK

来源:互联网 发布:阿里云服务器上传网站 编辑:程序博客网 时间:2024/06/15 09:03

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 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摄像机
GvrReticlePointe
r 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的图标。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 当亲戚孤立你该怎么办 陌陌好友找不到了怎么办 换了手机号陌陌号找不到怎么办 微信解析包出现问题怎么办 老板找借口不发工资怎么办 苹果手机忘记id帐号密码怎么办 苹果6手机帐号密码忘记怎么办 狗狗在窝里撒尿怎么办 爸妈和媳妇不好怎么办 如果老婆不用老公的钱怎么办 老公不给老婆钱花怎么办 奶少孩子不愿意吸怎么办 孩子识字少不愿意读书怎么办 夏天孩子不愿意喝水尿量少黄怎么办 孩子不喜欢与别人沟通怎么办 异地恋他爸妈不同意怎么办 刚装修家里很臭怎么办 狗弄得家里很臭怎么办 抑郁症患者不愿意回家见家人怎么办 属猴的人养猫怎么办 对方电话拉黑我怎么办 手机号码换了淘宝账号怎么办 扣扣号有密码无法加好友怎么办 扣扣帐号忘记了怎么办 扣扣帐号被冻结怎么办 xp忘了开机密码怎么办 手机怎样知道好友qq密码怎么办 找回微信密码申诉失败怎么办 若微信号被盗钱怎么办 微信号被倒了怎么办 微信支付密码忘了怎么办 微信钱包密码忘了怎么办 忘记qq锁屏密码怎么办 微信里保密柜密码忘记了怎么办 qq漫游记录密码忘了怎么办 当你很烦的时候怎么办 当你烦的时候怎么办 面对刁蛮不讲理的老婆怎么办 老是想以前的事怎么办 被心机婊陷害了怎么办 分手了还被骚扰怎么办