FittsLaw/Assets/GoogleVR/Scripts/EventSystem/GvrXREventsSubscriber.cs
2018-10-08 23:54:11 -04:00

58 lines
1.8 KiB
C#

// Copyright 2018 Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using UnityEngine;
using System.Collections;
#if UNITY_2017_2_OR_NEWER
using UnityEngine.XR;
#else
using XRDevice = UnityEngine.VR.VRDevice;
using XRSettings = UnityEngine.VR.VRSettings;
#endif // UNITY_2017_2_OR_NEWER
// Handler for subscribing XR Unity actions to GVR Actions.
public class GvrXREventsSubscriber : MonoBehaviour {
private static GvrXREventsSubscriber instance;
private string _loadedDeviceName;
public static string loadedDeviceName {
get {
return GetInstance()._loadedDeviceName;
}
set {
GetInstance()._loadedDeviceName = value;
}
}
private static void OnDeviceLoadAction(string newLoadedDeviceName) {
loadedDeviceName = newLoadedDeviceName;
}
void Awake() {
instance = this;
_loadedDeviceName = XRSettings.loadedDeviceName;
#if UNITY_2018_3_OR_NEWER
XRDevice.deviceLoaded += OnDeviceLoadAction;
#endif // UNITY_2018_3_OR_NEWER
}
private static GvrXREventsSubscriber GetInstance() {
if (instance == null) {
GameObject gvrXREventsSubscriber = new GameObject("GvrXREventsSubscriber");
gvrXREventsSubscriber.AddComponent<GvrXREventsSubscriber>();
}
return instance;
}
}