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);
        }
    }
}


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值