/// <summary> /// The GetHeadsetSDK method returns the selected headset SDK /// </summary> /// <returns>The currently selected Headset SDK</returns> public SDK_BaseHeadset GetHeadsetSDK() { SDK_BaseHeadset returnSDK = null; switch (headsetSDK) { case SupportedSDKs.SteamVR: returnSDK = ScriptableObject.CreateInstance <SDK_SteamVRHeadset>(); break; case SupportedSDKs.OculusVR: returnSDK = ScriptableObject.CreateInstance <SDK_OculusVRHeadset>(); break; case SupportedSDKs.Simulator: returnSDK = ScriptableObject.CreateInstance <SDK_SimHeadset>(); break; default: Debug.LogError("No valid Headset SDK has been selected. If you're seeing this error in Unity Edit mode, then try selecting the GameObject with the `VRTK_SDKManager` script and selecting a valid Headset SDK from the dropdown list."); returnSDK = ScriptableObject.CreateInstance <SDK_FallbackHeadset>(); break; } return(returnSDK); }
/// <summary> /// Populates the object references by using the currently set SDKs. /// </summary> /// <param name="force">Whether to ignore <see cref="autoPopulateObjectReferences"/> while deciding to populate.</param> public void PopulateObjectReferences(bool force) { if (!(force || autoPopulateObjectReferences) || automaticSDKSelection) { return; } actualBoundaries = null; actualHeadset = null; actualLeftController = null; actualRightController = null; modelAliasLeftController = null; modelAliasRightController = null; SDK_BaseBoundaries boundariesSDK = GetBoundariesSDK(); SDK_BaseHeadset headsetSDK = GetHeadsetSDK(); SDK_BaseController controllerSDK = GetControllerSDK(); Transform playAreaTransform = boundariesSDK.GetPlayArea(); Transform headsetTransform = headsetSDK.GetHeadset(); actualBoundaries = playAreaTransform == null ? null : playAreaTransform.gameObject; actualHeadset = headsetTransform == null ? null : headsetTransform.gameObject; actualLeftController = controllerSDK.GetControllerLeftHand(true); actualRightController = controllerSDK.GetControllerRightHand(true); modelAliasLeftController = controllerSDK.GetControllerModel(SDK_BaseController.ControllerHand.Left); modelAliasRightController = controllerSDK.GetControllerModel(SDK_BaseController.ControllerHand.Right); }
public static void InvalidateCaches() { #if UNITY_EDITOR Object.DestroyImmediate(systemSDK); Object.DestroyImmediate(headsetSDK); Object.DestroyImmediate(controllerSDK); Object.DestroyImmediate(boundariesSDK); Object.DestroyImmediate(trackerSDK); Object.DestroyImmediate(handSDK); #else Object.Destroy(systemSDK); Object.Destroy(headsetSDK); Object.Destroy(controllerSDK); Object.Destroy(boundariesSDK); Object.Destroy(trackerSDK); Object.Destroy(handSDK); #endif systemSDK = null; headsetSDK = null; controllerSDK = null; boundariesSDK = null; trackerSDK = null; handSDK = null; }
private static SDK_BaseHeadset GetHeadsetSDK() { if (headsetSDK == null) { headsetSDK = (VRTK_SDKManager.instance ? VRTK_SDKManager.instance.GetHeadsetSDK() : ScriptableObject.CreateInstance <SDK_FallbackHeadset>()); } return(headsetSDK); }
/// <summary> /// The GetHeadsetSDK method returns the selected headset SDK. /// </summary> /// <returns>The currently selected headset SDK.</returns> public SDK_BaseHeadset GetHeadsetSDK() { if (cachedHeadsetSDK == null) { HandleSDKGetter <SDK_BaseHeadset>("Headset", headsetSDKInfo, InstalledHeadsetSDKInfos); cachedHeadsetSDK = (SDK_BaseHeadset)ScriptableObject.CreateInstance(headsetSDKInfo.type); } return(cachedHeadsetSDK); }
public static SDK_BaseHeadset GetHeadsetSDK() { if (VRTK_SDKManager.instance != null && VRTK_SDKManager.instance.loadedSetup != null) { return(VRTK_SDKManager.instance.loadedSetup.headsetSDK); } if (headsetSDK == null) { headsetSDK = ScriptableObject.CreateInstance <SDK_FallbackHeadset>(); } return(headsetSDK); }
/// <summary> /// The GetHeadsetSDK method returns the selected headset SDK /// </summary> /// <returns>The currently selected Headset SDK</returns> public SDK_BaseHeadset GetHeadsetSDK() { SDK_BaseHeadset returnSDK = null; switch (headsetSDK) { case SupportedSDKs.SteamVR: returnSDK = ScriptableObject.CreateInstance <SDK_SteamVRHeadset>(); break; case SupportedSDKs.OculusVR: returnSDK = ScriptableObject.CreateInstance <SDK_OculusVRHeadset>(); break; default: returnSDK = ScriptableObject.CreateInstance <SDK_FallbackHeadset>(); break; } return(returnSDK); }
private static SDK_InterfaceHeadset GetHeadsetSDK() { if (headsetSDK == null) { headsetSDK = ScriptableObject.CreateInstance <SDK_FallbackHeadset>(); if (VRTK_SDKManager.instance) { switch (VRTK_SDKManager.instance.headsetSDK) { case VRTK_SDKManager.SupportedSDKs.SteamVR: headsetSDK = ScriptableObject.CreateInstance <SDK_SteamVRHeadset>(); break; default: Debug.LogError("No Headset SDK configured, falling back to generic Headset SDK."); break; } } } return(headsetSDK); }
private void AutoPopulate(VRTK_SDKManager sdkManager) { var boundariesSDK = GetBoundariesSDK(sdkManager); var headsetSDK = GetHeadsetSDK(sdkManager); var controllerSDK = GetControllerSDK(sdkManager); var forceSaveScene = false; if (boundariesSDK && (!sdkManager.actualBoundaries || !previousBoundariesSDK || boundariesSDK.GetType() != previousBoundariesSDK.GetType())) { var playareaTransform = boundariesSDK.GetPlayArea(); sdkManager.actualBoundaries = (playareaTransform ? playareaTransform.gameObject : null); previousBoundariesSDK = boundariesSDK; forceSaveScene = true; } if (headsetSDK && (!sdkManager.actualHeadset || !previousHeadsetSDK || headsetSDK.GetType() != previousHeadsetSDK.GetType())) { var headsetTransform = headsetSDK.GetHeadset(); sdkManager.actualHeadset = (headsetTransform ? headsetTransform.gameObject : null); previousHeadsetSDK = headsetSDK; forceSaveScene = true; } var setPreviousControllerSDK = false; if (controllerSDK && (!sdkManager.actualLeftController || !previousControllerSDK || controllerSDK.GetType() != previousControllerSDK.GetType())) { var controllerLeft = controllerSDK.GetControllerLeftHand(true); sdkManager.actualLeftController = (controllerLeft ? controllerLeft : null); setPreviousControllerSDK = true; } if (controllerSDK && (!sdkManager.actualRightController || !previousControllerSDK || controllerSDK.GetType() != previousControllerSDK.GetType())) { var controllerRight = controllerSDK.GetControllerRightHand(true); sdkManager.actualRightController = (controllerRight ? controllerRight : null); setPreviousControllerSDK = true; } if (controllerSDK && (!sdkManager.modelAliasLeftController || !previousControllerSDK || controllerSDK.GetType() != previousControllerSDK.GetType())) { var controllerLeft = controllerSDK.GetControllerModel(SDK_BaseController.ControllerHand.Left); sdkManager.modelAliasLeftController = (controllerLeft ? controllerLeft : null); setPreviousControllerSDK = true; } if (controllerSDK && (!sdkManager.modelAliasRightController || !previousControllerSDK || controllerSDK.GetType() != previousControllerSDK.GetType())) { var controllerRight = controllerSDK.GetControllerModel(SDK_BaseController.ControllerHand.Right); sdkManager.modelAliasRightController = (controllerRight ? controllerRight : null); setPreviousControllerSDK = true; } if (setPreviousControllerSDK) { previousControllerSDK = controllerSDK; forceSaveScene = true; } if (forceSaveScene) { UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(UnityEngine.SceneManagement.SceneManager.GetActiveScene()); } }