Skip to content
This repository has been archived by the owner on Nov 8, 2019. It is now read-only.

GVR SDK for Unity v1.180.0

Compare
Choose a tag to compare
@rusmaxham rusmaxham released this 26 Nov 22:47
· 6 commits to master since this release

Support for Unity 5.6 ending soon

Unity has discontinued support for 5.6. As a result, starting with Google VR SDK v1.200.0 we will discontinue support of Unity 5.6 and raise the minimum supported version of Unity to 2017.4.

Breaking changes

  • Removed components deprecated in v1.70.0:
    • GvrController. Use GvrControllerInput instead.
    • GvrControllerVisualManager. Use GvrTrackedController instead.
    • GvrPointerManager. Use GvrPointerInputModule instead.

Deprecations

  • Using the Controller Emulator app to emulate a Daydream controller is deprecated. To test your app in the editor, use Instant Preview instead. The GvrControllerMain prefab now defaults the Emulator Connection to OFF.

New APIs & functionality

  • Added GoogleVR.Beta namespace containing new beta APIs to support experimental 6DoF controllers. See below for additional details.
  • Added properties to GvrControllerInputDevice: Buttons, ButtonsDown, and ButtonsUp which return the bitmask of all buttons that are currently down, just went down, and just went up.
  • GvrControllerVisual changes:
    • Added protected virtual method GetVisualAssets(). Subclasses can override this method to change the mesh and material of the visual rendering. This method is called every frame during the visual update process.
    • Changed PreferredAlpha to virtual.
  • GvrControllerInputDevice changes:
    • Added full buttons state getters Buttons, ButtonsDown, and ButtonsUp, which return the various states for all buttons in one call.
  • Added properties to GoogleVR/Unlit/Controller shader for setting the UV position and radius of the touchpad.

Other changes

  • Controller implementation now interfaces with a new shim library that is shared with Unity 2018.3 and later. These changes should be invisible to app developers, and are mentioned here for completeness only.
  • Updated bundled lib GVR for Android to v1.180.0.
  • Binaries in the SDK are now covered by the Google API TOS.

Bug fixes

  • Fixed issue 863 where video autoplay fails if the delay is shorter than the first frame.
  • Fixed issue 870 where switching scenes would cause Instant Preview to attempt to destroy previously destroyed cameras, resulting in error messages.
  • Fixed issue 947 where setting Time.timeScale to 0 would cause undefined behavior for MouseControllerProvider gyro values, resulting in error messages.
  • Fixed issue 954: changed GvrBuildPreprocessor's error messages to warning messages, to support developers build both Google VR and non-Google VR mobile apps.
  • Fixed GvrPointerInputModuleImpl.IsPointerOverGameObject to check the pointerId of the CurrentEventData.

Experimental 6DoF controllers

To learn more about the experimental 6DoF controllers, read our announcement and developer documentation.

New APIs and functionality

  • GvrControllerButton: Added Trigger and Grip buttons.

New GvrEventSystem behavior

  • Experimental 6DoF controllers emit PointerDown, PointerUp, and PointerClick pointer events, triggered by GvrControllerButtons TouchPadButton, Trigger, Grip, and App.
    • Daydream (3DoF) controllers will continue to emit pointer events for only TouchPadButton, but not the App button.
  • PointerEventData is generated such that TouchPadButton and Trigger buttons trigger UI components' click behaviors, while App and Grip will not.
  • PointerEventData generated by controllers now contains extended event information exposed through the new PointerEventData methods:
    • The actual type of the PointerEventData is now of type GvrPointerEventData. This is an internal detail, and only mentioned for completeness.
    • GvrGetButtonsDown() returns the GvrControllerButton that went down to trigger the event.
    • GvrGetControllerInputDevice() returns the GvrControllerInputDevice from which the pointer event originated.

New Beta APIs & functionality

NOTE: Beta APIs in the GoogleVR.Beta namespace are not subject to the usual deprecation process. Beta APIs are expected to change and may be removed entirely in a future version without warning.

  • New assets and material for the experimental 6DoF controllers.
  • New GvrBetaControllerPointer prefab that uses new GvrBetaControllerVisualMulti component to switch controller meshes at runtime and change controller transparency based on positional tracking status.
  • GvrControllerInputDevice.GetConfigurationType() returns whether a controller is 3DoF or 6DoF.
  • GvrControllerInputDevice.GetTrackingStatus() returns a controller's positional tracking status.

New beta demo scene Hello6DoFControllers demonstrates new experimental 6DoF controller features:

  • Demonstrates use of two controllers.
  • Component DemoObjectController6DoF demonstrates usage of the experimental 6DoF controller's grip button to "grab" the floating object.