This repository has been archived by the owner on Nov 8, 2019. It is now read-only.
GVR SDK for Unity v1.70.0
Breaking Changes
- Refactored Controller classes:
- Deprecated
GvrPointerManager
. Its functionality has been moved to
GvrPointerInputModule
. GvrArmModel
is no longer a singleton and has been moved to the
GvrControllerPointer
prefab.- Renamed
GvrController
toGvrControllerInput
.GvrController
still
exists for backwards compatibility. GvrArmModelOffsets
has been replaced byGvrFollowControllerPose
.
GvrArmModelOffsets
still exists for backwards compatibility.GvrControllerVisualManager
has been replaced by
GvrTrackedController
.GvrControllerVisualManager
still exists for
backwards compatibility.GvrLaserPointer
has been de-coupled from the laser/reticle rendering
code (which is now handled byGvrLaserVisual
).- Tooltips have been removed from the
GvrControllerPointer
prefab.
There are now prefabs for just tooltips. - Prefabs can be dynamically added to the controller visual by listing
them in the attachmentPrefabs property on theGvrControllerVisual
script. - RaycastMode is now set per-pointer instead of per-raycaster.
- Deprecated
Additions
- You can now simulate the controller in the Unity editor using the mouse.
- Hold the shift key with the game view in focus to use the mouse.
The controls are as follows:- Shift + move mouse: Change orientation.
- Shift + left-click: ClickButton
- Shift + right-click: AppButton
- Shift + Middle mouse button: HomeButton/Recenter
- Shift + Ctrl: IsTouching
- Shift + Ctrl + Move Mouse: Change TouchPos
- Hold the shift key with the game view in focus to use the mouse.
- Added the ability to anchor the arm model to the local position of the
head. This will be used for the standalone headsets so the arm model doesn't
break with positional tracking. - Introduced a new experimental Hybrid raycast mode that combines
Camera and Direct modes to make the Daydream controller work better
in more complex scenes that include objects at many different depths and
locomotion. The default raycast mode is still Camera.
Changes
- We've updated the controller visualization. The new controller visual is
both higher fidelity and more performant.- Removed the touch point and battery indicator.
- Replaced controller assets and textures.
- Added new simple tooltips.
- The battery status UI is only displayed when the required library is available.
Unity includes the required library as of Unity 5.6.2p1. - The
GvrDaydreamApi.LaunchVrHome()
API no longer requires that you first
callGvrDaydreamApi.Create()
. However, theCreate()
method still exists
to give developers precise control over when the (expensive) instance creation
happens. TheDispose()
method remains as well, to allow developers to clean
up unneeded memory. However,Dispose()
is now called automatically upon
OnApplicationPause(true)
. See class comments inGvrDaydreamApi
for
additional details. - Change DemoInputManger's default message to be less confusing when
viewing its message canvas when the app is not running. - Included a few different improvements to scrolling in the GVR SDK for Unity:
GvrPointerScrollInput
no longer directly accessesGvrControllerInput
.
Instead, input is piped throughGvrBasePointer
just like it is for
GvrPointerInputModule
. This makes it possible for the scroll events to
work cross-platform with custom GvrBasePointer implementations.- Added the ability to respond to Scroll Events globally in
GvrAllEventsTrigger
. - Added the ability to override scroll inertia settings on a per-GameObject
basis by either implementingIGvrScrollSettings
or using the script
GvrScrollSettings
.
- Optimized GvrFps display by removing Canvas and replacing the Text component.
- Renamed GvrFPSCanvas.prefab to GvrFPSDisplay.prefab.
- Removed (unused)
GvrDistortion.cginc
. GvrPointerPhysicsRaycaster
no longer allocates memory every frame. It now
usesRaycastNonAlloc/SphereCastNonAlloc
. The size of the buffer for raycast
hits is determined by the new serialized propertymaxRaycastHits
.- It's now possible to use the pointer system with no main camera. A camera
can be (optionally) specified on theoverridePointerCamera
field on
GvrLaserPointer
. GvrDaydreamApi.LaunchVrHome()
andCreate()
have new method signatures
to communicate asynchronous implementation and to provide the caller with
a way to know when the call has completed:
GvrDaydreamApi.LaunchVrHomeAsync(Action<bool> callback)
,
CreateAsync(Action<bool> callback)
.- Exposed
TouchPosCentered
, which remaps touchpad input from(-1, 1)
,
centered on0
, and magnitude <=1
(e.g. clamped to the circular touchpad) - Moved the
Plugins
folder underneath theGoogleVR
folder so that future
SDK upgrades are easier since the top levelPlugins
folder will no longer
contain non-GVR and GVR content. GVRVideoPlayerTexture
no longer copiesSurfaceTexture
s into Unity textures,
but rather rendersSurfaceTexture
s directly into the scene, optimizing it
to use much less memory and GPU.- GVR Video Demo OBB sample video is now a stereo version of Big Buck Bunny.
Fixes
- Prevent serialized field properties in Google VR prefabs and scenes
being set tonull
when editing them while build platform is not Android
or iOS. - Fixed continuous calls to the
Stop()
method in theGvrAudioSource
source. - Fixed a bug that caused the
INTERNET
permission to be added to the Android
manifest unnecessarily when using the SDK. GVRVideoPlayerTexture.SetDisplayTexture()
now properly sets the display
texture.GvrBuildProcessor
now ignores non-Google VR target build platforms.- Fixed a bug that would cause
GvrReticlePointer
to render behind things
with a sort order > than0
. - Added support for tracking all of a scene's cameras (that target at least
one eye) inGvrEditorEmulator
. - Fixed audio not showing up in iOS native integration builds
(issue 618).