/// <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; }
/// <summary> /// The GetControllerSDK method returns the selected controller SDK /// </summary> /// <returns>The currently selected Controller SDK</returns> public SDK_BaseController GetControllerSDK() { SDK_BaseController returnSDK = null; switch (controllerSDK) { case SupportedSDKs.SteamVR: returnSDK = ScriptableObject.CreateInstance <SDK_SteamVRController>(); break; case SupportedSDKs.OculusVR: returnSDK = ScriptableObject.CreateInstance <SDK_OculusVRController>(); break; case SupportedSDKs.Simulator: returnSDK = ScriptableObject.CreateInstance <SDK_SimController>(); break; default: Debug.LogError("No valid Controller 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 Controller SDK from the dropdown list."); returnSDK = ScriptableObject.CreateInstance <SDK_FallbackController>(); break; } return(returnSDK); }
private static SDK_BaseController GetControllerSDK() { if (controllerSDK == null) { controllerSDK = (VRTK_SDKManager.instance ? VRTK_SDKManager.instance.GetControllerSDK() : ScriptableObject.CreateInstance <SDK_FallbackController>()); } return(controllerSDK); }
/// <summary> /// The GetControllerSDK method returns the selected controller SDK. /// </summary> /// <returns>The currently selected controller SDK.</returns> public SDK_BaseController GetControllerSDK() { if (cachedControllerSDK == null) { HandleSDKGetter <SDK_BaseController>("Controller", controllerSDKInfo, InstalledControllerSDKInfos); cachedControllerSDK = (SDK_BaseController)ScriptableObject.CreateInstance(controllerSDKInfo.type); } return(cachedControllerSDK); }
public static SDK_BaseController GetControllerSDK() { if (VRTK_SDKManager.instance != null && VRTK_SDKManager.instance.loadedSetup != null) { return(VRTK_SDKManager.instance.loadedSetup.controllerSDK); } if (controllerSDK == null) { controllerSDK = ScriptableObject.CreateInstance <SDK_FallbackController>(); } return(controllerSDK); }
/// <summary> /// The GetControllerSDK method returns the selected controller SDK /// </summary> /// <returns>The currently selected Controller SDK</returns> public SDK_BaseController GetControllerSDK() { SDK_BaseController returnSDK = null; switch (controllerSDK) { case SupportedSDKs.SteamVR: returnSDK = ScriptableObject.CreateInstance <SDK_SteamVRController>(); break; case SupportedSDKs.OculusVR: returnSDK = ScriptableObject.CreateInstance <SDK_OculusVRController>(); break; default: returnSDK = ScriptableObject.CreateInstance <SDK_FallbackController>(); break; } return(returnSDK); }
private static SDK_InterfaceController GetControllerSDK() { if (controllerSDK == null) { controllerSDK = ScriptableObject.CreateInstance <SDK_FallbackController>(); if (VRTK_SDKManager.instance) { switch (VRTK_SDKManager.instance.controllerSDK) { case VRTK_SDKManager.SupportedSDKs.SteamVR: controllerSDK = ScriptableObject.CreateInstance <SDK_SteamVRController>(); break; default: Debug.LogError("No Controller SDK configured, falling back to generic Controller SDK."); break; } } } return(controllerSDK); }
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()); } }
protected virtual void LoadedSetupChanged(VRTK_SDKManager sender, VRTK_SDKManager.LoadedSetupChangeEventArgs e) { CheckControllersReady(); previousControllerSDK = VRTK_SDK_Bridge.GetControllerSDK(); }