This repository was archived by the owner on Nov 8, 2019. It is now read-only.
Releases: googlevr/gvr-unity-sdkReleases · googlevr/gvr-unity-sdk
GVR SDK for Unity v1.200.1 GVR SDK for Unity v1.200.1 (2019-07-17) Breaking changesGUILayer
component from the Main Camera in all sample scenes, for compatibility with Unity 2019.3.Unity has discontinued support for 5.6. As a result, we have discontinued support of Unity 5.6 and have raised the minimum supported version of Unity to 2017.4.
Breaking changesGvrXREventsSubscriber.loadedDeviceName
's setter is now private.GvrAudio*
components have been removed. If your project uses GvrAudio, please upgrade to Resonance Audio (developers.google.com/resonance-audio/migrate). Resonance Audio supports Unity 2017.1 and newer and is natively integrated in Unity 2018.1 and newer.Overlay+100
to Transparent
to address controller render order issues.InstantPreview.cs
script now always launches Instant Preview's VR-mode intent (it previously occasionally launched the 2D-mode intent).To learn more about see-through mode, read our announcement and developer documentation for the Android NDK and Unity.
Experimental features andGoogleVR.Beta
APIs
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.
GvrBetaHeadset
class that provides an API to change see-through mode at runtime.OneMinusDstAlpha One
has been appended to the existing color channels blend operation of SrcAlpha OneMinusSrcAlpha
.GvrBetaSettings
class that provides an API to query status and request use of experimental system features like see-through mode.New beta demo scene HelloMR demonstrates new experimental see-through mode features:
DemoSeeThroughController
cycles through different see-through modes whenever any controller's App
button is clicked.GvrPointerInputModule.Pointer
doesn't cause the GvrPointerGraphicRaycaster
to clear the cachedPointerEventCamera
field, leading GvrPointerGraphicRaycaster.eventCamera
to return an incorrect camera when using RaycastMode.Direct
.native_libs
gradle build to 3.3.1.GvrPointer
raycasts would be projected from the wrong origin.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.
Bug fixesInstantPreview.UpdateEvents()
would raise an EntryPointNotFoundException
on Windows.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.
DeprecationsTryGetFloorHeight()
TryGetRecenterTransform()
TryGetSafetyRegionType()
TryGetSafetyCylinderInnerRadius()
TryGetSafetyCylinderOuterRadius()
GvrEventType.Recenter
GvrRecenterEventType.RecenterEventRestart
GvrRecenterEventType.RecenterEventAligned
GvrEventType.SafetyRegionExit
GvrEventType.SafetyRegionEnter
adb
is not found.HeadsetDemoManager
component now only logs debug console messages when its Enable Debug Log checkbox is checked.*.cs
files.GoogleVR.Beta
APIs
GoogleVR.Beta
APIs GvrControllerInputDevice.GetConfigurationType()
and GvrControllerInputDevice.GetTrackingStatusFlags()
are not yet supported by Instant Preview.NullReferenceException
s from DemoInputManager.SetControllerInputActive()
in KeyboardDemo and VideoDemo scenes.OFF
.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 changesGvrController
. Use GvrControllerInput
instead.GvrControllerVisualManager
. Use GvrTrackedController
instead.GvrPointerManager
. Use GvrPointerInputModule
instead.OFF
.GoogleVR.Beta
namespace containing new beta APIs to support experimental 6DoF controllers. See below for additional details.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:
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.PreferredAlpha
to virtual.GvrControllerInputDevice
changes:
Buttons
, ButtonsDown
, and ButtonsUp
, which return the various states for all buttons in one call.Time.timeScale
to 0
would cause undefined behavior for MouseControllerProvider
gyro values, resulting in error messages.GvrBuildPreprocessor
's error messages to warning messages, to support developers build both Google VR and non-Google VR mobile apps.GvrPointerInputModuleImpl.IsPointerOverGameObject
to check the pointerId
of the CurrentEventData
.To learn more about the experimental 6DoF controllers, read our announcement and developer documentation.
New APIs and functionalityGvrControllerButton
: Added Trigger
and Grip
buttons.PointerDown
, PointerUp
, and PointerClick
pointer events, triggered by GvrControllerButton
s TouchPadButton
, Trigger
, Grip
, and App
.
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:
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.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.
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:
DemoObjectController6DoF
demonstrates usage of the experimental 6DoF controller's grip button to "grab" the floating object.Time.timeScale = 0
caused the the Cardboard reticle pointer to disappear.XRSettings.loadedDeviceName
was unnecessarily allocating memory every frame, resulting in excessive garbage collection. The new GvrXREventsSubscriber
class now avoids per-frame allocations in Unity 2018.3 and later.AndroidNativeControllerProvider
from every frame to once at class instantiation.GvrReticlePointer
didn't trigger buttons properly when tilted more than 45˚ from vertical.GvrControllerInputDevice
class for accessing controllers, accessible via GvrControllerInput.GetDevice(GvrControllerHand hand)
.GvrControllerInput.OnDevicesChanged
event to handle changes in GvrControllerInputDevice
instances. Old instances will be marked invalid and error when used. When this event fires, re-fetch the desired GvrControllerInputDevice
from GvrControllerInput.GetDevice()
. New handlers added to this event will be called immediately upon adding.GvrControllerHand
enum for specifying handedness.
Right
, Left
, Dominant
, NonDominant
.Dominant
controller will always be present on single and multiple controller systems and will map to the Right
or Left
controller depending on the handedness system prefrerence setting (GvrSettings.Handedness
).GvrControllerButton
enum for specifying controller buttons. Values can be OR'ed together to create a multi-button mask.GvrTrackedController.ControllerHand
property to specify which hand GvrTrackedController
tracks.IGvrControllerInputDeviceReceiver
interface. Script components that that implement this receiver interface and are children of GvrTrackedController
or children of the object set in GvrTrackedController.ArmModel
will receive callbacks when the tracked controller initializes or changes its device instance.Dominant
controller.
NonDominant
.GvrControllerPointer
game objects for Dominant
and NonDominant
hands.
Dominant
controller will be activated at runtime.DemoInputManager
's ControllerPointers
property is now an array to handle multiple controllers. Since there can only be one pointer at a time, DemoInputManager
activates the single pointer on the last controller the user clicked the App
or TouchPadButton
button.GvrControllerInput
methods to GvrControllerInputDevice
methods, you will need to consider how best to get GvrControllerInputDevice
instance updates. If your component will be a child of GvrTrackedController
, then your component should implement the IGvrControllerInputDeviceReceiver
interface to receive device instance updates from GvrTrackedController
. This has the advantage that your component will automatically get the GvrControllerInputDevice
of the hand for which the parent GvrTrackedController
is configured. If your component lives outside of GvrTrackedController
you can either fetch a device instance every time you need one from GvrControllerInput.GetDevice()
, or register an event hander for GvrControllerInput.OnDevicesChanged
to receive callbacks when device instances change and cache the result of a call to GvrControllerInput.GetDevice()
.None.
DeprecationsGvrControllerInput
methods and properties have been deprecated. Replacement methods and properties can be accessed on the new GvrControllerInputDevice
instances:
GvrControllerInputDevice
instance properties:
OnStateChanged
State
Orientation
Gyro
Accel
ErrorDetails
StatePtr
IsCharging
BatteryLevel
TouchPos
instance property on GvrControllerInputDevice
that returns center relative touch coordinates:
GvrControllerInput.TouchPosCentered
(center is (0, 0)
) -> TouchPos
(center is (0, 0)
)GvrControllerInput.TouchPos
(top-left is (0, 0)
) -> TouchPos
on GvrControllerInputDevice
(center is (0, 0)
)GvrControllerInputDevice
instance methods. Method names have been changed for consistency with Unity's Input API:
GvrControllerInput.IsTouching()
-> GetButton(GvrControllerButton.TouchPadTouch)
GvrControllerInput.TouchDown()
-> GetButtonDown(GvrControllerButton.TouchPadTouch)
GvrControllerInput.TouchUp()
-> GetButtonUp(GvrControllerButton.TouchPadTouch)
GvrControllerInput.ClickButton()
-> GetButton(GvrControllerButton.TouchPadButton)
GvrControllerInput.ClickButtonDown()
-> GetButtonDown(GvrControllerButton.TouchPadButton)
GvrControllerInput.ClickButtonUp()
-> GetButtonUp(GvrControllerButton.TouchPadButton)
GvrControllerInput.AppButton()
-> GetButton(GvrControllerButton.App)
GvrControllerInput.AppButtonDown()
-> GetButtonDown(GvrControllerButton.App)
GvrControllerInput.AppButton()
-> GetButtonUp(GvrControllerButton.App)
GvrControllerInput.HomeButtonDown()
-> GetButtonDown(GvrControllerButton.System)
GvrControllerInput.HomeButtonState()
-> GetButton(GvrControllerButton.System)
HeadsetDemoManager
debug logging of safety region and floor height is now off by default.safetyRing
in HeadsetDemoManager
.gvr-exoplayersupport
, gvr-keyboardsupport
, gvr-permissionsupport
, and video_plugin
to the git repo. Addresses issues 437 and 556.GvrEditorEmulator
was previously allocating memory every frame, and should now only allocate on Awake()
.GvrVRHelpers.GetHeadRotation()
didn't work with Instant Preview.GvrTrackedController
without a GvrControllerInput
.GVRKeyboard
when building with IL2CPP would throw NotSupportedException
.GVRKeyboard
component after destroying one will cause a crash.* Fixed build error (issue 877) when Unity iOS player support is not installed.
GVR SDK for Unity v1.130.0 Breaking changesInputTracking.disablePositionalTracking = true
from the AndroidNativeKeyboardProvider
constructor.maxReticleDistance
on GvrReticlePointer
from 10.0f
to 20.0f
.NSCameraUsageDescription
to Info.plist.ServiceConnection
to Google VR Services by properly closing DaydreamApi
instance.GvrAudio*
components remain deprecated in Unity 2017.1 or later. However, the SDK no longer displays deprecation warnings in Unity 5.6, as upgrading to Resonance Audio (developers.google.com/resonance-audio/migrate) requires Unity 2017.1 or later.CurrentDistance
readonly property to class GvrLaserVisual
.SetControllerTexture
method to class GvrControllerVisual
to toggle it at runtime.README
to link to https://github.com/googlevr/gvr-unity-sdk/releases for latest SDK and release notes.GvrEditorEmulator
would not function without the GvrControllerMain
prefab in the scene.GvrCardboardHelpers.Recenter
would not recenter GvrEditorEmulator
in the editor.GvrAudio*
components would cause a crash in the Unity Editor when the target platform is selected to iOS.RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4