Gvr SDK for Unity 分析(二)

前端之家收集整理的这篇文章主要介绍了Gvr SDK for Unity 分析(二)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

关于google vr sdk的具体使用,传送门 Gvr SDK for Unity 分析(一)

Google Daydream平台已经整合进Google VR SDK

本文环境:@H_403_8@Unity5.3.1 x64,Gvr SDK 0.8,VS2013

单词翻译

stereo@H_403_8@:立体的; pose@H_403_8@:姿势; gaze@H_403_8@:凝视,注视;Reticle@H_403_8@:十字线,准星 ;Responder@H_403_8@:应答者;

provider@H_403_8@:提供者;ProviderFactory@H_403_8@:工厂类; Emulator@H_403_8@:仿真程序,仿真器

Perspective@H_403_8@:透视,3D相机;Orthographic@H_403_8@:正交,2D相机;

 

脚本参考


Scripts\@H_403_8@

GazeInputModule.cs

功能检测用户与系统的交互(通过触发或控制器)@H_403_8@

实现UnityEngine.UI.BaseInputModule接口(BaseInputModel继承自UnityEngine.UI.UIBehavIoUr)

所以uGUI的元素在被选中或trigger,touching 触发的事件,可以传递出来。

image

 

GvrEye.cs

并排立体呈现模拟@H_403_8@,有Left eye,Right eye,每一个控制 stereo 的单个camera

image

 

GvrHead.cs

用户头部跟踪模拟@H_403_8@,提供头部跟踪的数据给camera,在头部运动过程中它附着的transform属性也会同步发生改变。

image

 

GvrPostRender.cs

模拟镜头对立体画面的失真校正@H_403_8@

image

 

GvrPreRender.cs

清除整个屏幕。

原理:@H_403_8@

Clear Flags 确定了屏幕哪些部分将被清除,这是为了方便使用多个摄像机渲染不同的游戏元素,每个相机在渲染时都会存储颜色和深度信息。

屏幕的未绘制部分是空的,默认情况下会显示天空盒。

当你使用多个相机时,每一个相机都将自己的颜色和深度信息存储在缓冲区中,还将积累每个相机大量的的渲染数据。当场景中任何特定的相机进行渲染时,你可以设定清除标记来清除缓冲区信息的不同集合

camera.clear flags=Solid Color (纯色)表示屏幕上的任何空的部分将显示当前相机的背景颜色。

资料参考:Unity 3D-- 摄像机Clear Flags和Culling Mask属性用途详解

image

 

GvrProfile.cs

 

GvrView.cs

可以对vr view进行特殊的配置

image

 

Pose3D.cs

 

StereoController.cs

绑定在MainCamera上,两个GvrEye渲染stereo view 内容的控制器

image

 

StereoRenderEffect.cs


Scripts\Audio\

GvrAudio.cs

空间音频渲染@H_403_8@,负责Gvr音频类和系统原生音频系统进行通信

 

GvrAudioListener.cs

GVR音频监听器组件,可提高音频监听器,提供先进的空间音频功能

image

 

GvrAudioRoom.cs

GVR音频室组件,对绑定此组件的gameobject,模拟房间的环境影响

 

GvrAudioSource.cs

audiosource组件增强,给audiosource提供先进的空间音频功能

image


Scripts\Controller\

GvrController.cs

GVR Controller API的主入口

image

 

Scripts\Controller\Internal\ControllerProviders

image

 

Scripts\Controller\Internal\Emulator

EmulatorManager

包括自动陀螺漂移校正@H_403_8@,加速器@H_403_8@事件监听器,touch@H_403_8@事件监听器,指南针@H_403_8@事件监听器,按钮@H_403_8@事件监听器

该目录下有以下文件

  • EmulatorManager.cs

  • EmulatorClientSocket.cs

  • EmulatorConfig.cs

  • EmulatorDataTypes.cs

  • PhoneEvent.cs


Scripts\UI\

GvrGaze.cs

Class that can perform gaze-based selection,as a simple alternative to the more complicated path of using GazeInputModule and the rest of uGUI@H_403_8@.

可以执行准星选中的操作,比起使用gazeinputmodule ,它作为一个简单的替代

 

GvrReticle.cs

用户凝视任何对象时,在该对象前绘制一个十字准星

image


Scripts\VRDevices\@H_403_8@

包括各种平台及运行环境的模拟

image

 

接口

IGvrGazePointer.cs@H_403_8@

为GazeInputModule提供接口,接口中定义输入输出的处理函数

image

主要逻辑处理在GazeInputModule.UpdateReticle@H_403_8@中

if (gazeObject == prevIoUsGazedObject) {  if (gazeObject != null) {
    gazePointer.OnGazeStay(camera,gazeObject,intersectionPosition,isInteractive);
  }
} else {  if (prevIoUsGazedObject != ) {
    gazePointer.OnGazeExit(camera,prevIoUsGazedObject);
  }  ) {
    gazePointer.OnGazeStart(camera,isInteractive);
  }
}

 

IGverGazeResponder.cs@H_403_8@

为GvrGaze提供接口,接口中定义了凝视的触发事件

三个方法 OnGazeEnter@H_403_8@ OnGazeExit@H_403_8@ OnGazeTrigger @H_403_8@当准星对准任何Gameobject时的处理,具体请查看GvrGaze.cs中的HandleGaze@H_403_8@

 


Resources

Resources\SolidColor.shader  @H_403_8@纯色填充

Resources\UnlitTexture.shader  @H_403_8@无光照帖图

Distortion\GvrDistortion.cginc@H_403_8@ 扭曲shader

Resources\UI\GvrReticleShader.shader@H_403_8@ 准星,十字线Shader

Resources\GvrAudioMixer.mixer @H_403_8@音频文件

 


Plugins

AndroidManifest.xml

<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="22" />

Google.ProtocolBuffers.dll


unity_gvr_activity.jar

android目录下的jar包提供android的API给unity调用

Plugins\Android\unity gvr activity.aar@H_403_8@

Plugins\Android\gvr_android_common.aar@H_403_8@

Plugins\Android\libs\armeabi-v7a\libgvrunity.so@H_403_8@

image

unitygvractivity_classes.jar@H_403_8@

image

gvr_android_common_classes.jar@H_403_8@

image

aar文件

*.aar是一种压缩文件,和*.jar类似,不过它可以包含资源文件,例如图片、drawable、xml资源

 

JD-GUI

Java反编译工具 JD:http://jd.benow.ca/

如果运行JD-GUI报下图错误

image

解决办法

1. 请下载安装jre 1.7.0@H_403_8@

2. 把jd-gui.exe@H_403_8@拷贝到jre安装路径下@H_403_8@,就可以双击jd-gui.exe运行啦

image

 

参考资料@H_403_8@

Java7存档下载:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html?ssSourceSiteId=otncn

Java 存档:http://www.oracle.com/technetwork/java/javase/archive-139210.html

 

GVR 官网API :Google VR for Unity SDK Script Reference

Set up a Daydream Development Kit : https://developers.google.com/vr/concepts/dev-kit-setup

 

Google、Unity等公司专家深度解读VR平台Daydream:https://yq.aliyun.com/articles/54066

猜你在找的Unity相关文章