protected static void SetupKnownDeviceModel(IVRModuleDeviceStateRW deviceState) { if (s_viveRgx.IsMatch(deviceState.modelNumber) || s_viveRgx.IsMatch(deviceState.renderModelName)) { switch (deviceState.deviceClass) { case VRModuleDeviceClass.HMD: deviceState.deviceModel = VRModuleDeviceModel.ViveHMD; return; case VRModuleDeviceClass.Controller: if (s_viveCosmosRgx.IsMatch(deviceState.modelNumber)) { if (s_leftRgx.IsMatch(deviceState.renderModelName)) { deviceState.deviceModel = VRModuleDeviceModel.ViveCosmosControllerLeft; } else if (s_rightRgx.IsMatch(deviceState.renderModelName)) { deviceState.deviceModel = VRModuleDeviceModel.ViveCosmosControllerRight; } deviceState.input2DType = VRModuleInput2DType.JoystickOnly; } else { deviceState.deviceModel = VRModuleDeviceModel.ViveController; deviceState.input2DType = VRModuleInput2DType.TouchpadOnly; } return; case VRModuleDeviceClass.GenericTracker: deviceState.deviceModel = VRModuleDeviceModel.ViveTracker; return; case VRModuleDeviceClass.TrackingReference: deviceState.deviceModel = VRModuleDeviceModel.ViveBaseStation; return; } } else if (s_oculusRgx.IsMatch(deviceState.modelNumber)) { switch (deviceState.deviceClass) { case VRModuleDeviceClass.HMD: deviceState.deviceModel = VRModuleDeviceModel.OculusHMD; return; case VRModuleDeviceClass.Controller: if (Application.platform == RuntimePlatform.Android) { if (deviceState.modelNumber.Contains("Go")) { deviceState.deviceModel = VRModuleDeviceModel.OculusGoController; deviceState.input2DType = VRModuleInput2DType.TouchpadOnly; return; } else if (s_leftRgx.IsMatch(deviceState.modelNumber)) { deviceState.deviceModel = VRModuleDeviceModel.OculusQuestControllerLeft; deviceState.input2DType = VRModuleInput2DType.JoystickOnly; return; } else if (s_rightRgx.IsMatch(deviceState.modelNumber)) { deviceState.deviceModel = VRModuleDeviceModel.OculusQuestControllerRight; deviceState.input2DType = VRModuleInput2DType.JoystickOnly; return; } } else { if (s_leftRgx.IsMatch(deviceState.modelNumber)) { deviceState.deviceModel = VRModuleDeviceModel.OculusTouchLeft; deviceState.input2DType = VRModuleInput2DType.JoystickOnly; return; } else if (s_rightRgx.IsMatch(deviceState.modelNumber)) { deviceState.deviceModel = VRModuleDeviceModel.OculusTouchRight; deviceState.input2DType = VRModuleInput2DType.JoystickOnly; return; } } break; case VRModuleDeviceClass.TrackingReference: deviceState.deviceModel = VRModuleDeviceModel.OculusSensor; return; } } else if (s_wmrRgx.IsMatch(deviceState.modelNumber) || s_wmrRgx.IsMatch(deviceState.renderModelName)) { switch (deviceState.deviceClass) { case VRModuleDeviceClass.HMD: deviceState.deviceModel = VRModuleDeviceModel.WMRHMD; return; case VRModuleDeviceClass.Controller: if (s_leftRgx.IsMatch(deviceState.modelNumber) && VRModule.GetLeftControllerDeviceIndex() == deviceState.deviceIndex) { deviceState.deviceModel = VRModuleDeviceModel.WMRControllerLeft; deviceState.input2DType = VRModuleInput2DType.Both; return; } else if (s_rightRgx.IsMatch(deviceState.modelNumber) && VRModule.GetRightControllerDeviceIndex() == deviceState.deviceIndex) { deviceState.deviceModel = VRModuleDeviceModel.WMRControllerRight; deviceState.input2DType = VRModuleInput2DType.Both; return; } break; } } else if (s_indexRgx.IsMatch(deviceState.modelNumber) || s_indexRgx.IsMatch(deviceState.renderModelName)) { switch (deviceState.deviceClass) { case VRModuleDeviceClass.HMD: deviceState.deviceModel = VRModuleDeviceModel.IndexHMD; return; case VRModuleDeviceClass.Controller: deviceState.input2DType = VRModuleInput2DType.TouchpadOnly; if (s_leftRgx.IsMatch(deviceState.renderModelName)) { if (s_knucklesRgx.IsMatch(deviceState.renderModelName)) { deviceState.deviceModel = VRModuleDeviceModel.KnucklesLeft; } else { deviceState.deviceModel = VRModuleDeviceModel.IndexControllerLeft; #if VIU_STEAMVR_2_0_0_OR_NEWER deviceState.input2DType = VRModuleInput2DType.Both; #endif } } else if (s_rightRgx.IsMatch(deviceState.renderModelName)) { if (s_knucklesRgx.IsMatch(deviceState.renderModelName)) { deviceState.deviceModel = VRModuleDeviceModel.KnucklesRight; } else { deviceState.deviceModel = VRModuleDeviceModel.IndexControllerRight; #if VIU_STEAMVR_2_0_0_OR_NEWER deviceState.input2DType = VRModuleInput2DType.Both; #endif } } return; case VRModuleDeviceClass.TrackingReference: deviceState.deviceModel = VRModuleDeviceModel.ViveBaseStation; return; } } else if (s_daydreamRgx.IsMatch(deviceState.modelNumber)) { switch (deviceState.deviceClass) { case VRModuleDeviceClass.HMD: deviceState.deviceModel = VRModuleDeviceModel.DaydreamHMD; return; case VRModuleDeviceClass.Controller: deviceState.deviceModel = VRModuleDeviceModel.DaydreamController; deviceState.input2DType = VRModuleInput2DType.TrackpadOnly; return; } } deviceState.deviceModel = VRModuleDeviceModel.Unknown; }
protected static void SetupKnownDeviceModel(IVRModuleDeviceStateRW deviceState) { if (s_viveRgx.IsMatch(deviceState.modelNumber) || s_viveRgx.IsMatch(deviceState.renderModelName)) { switch (deviceState.deviceClass) { case VRModuleDeviceClass.HMD: deviceState.deviceModel = VRModuleDeviceModel.ViveHMD; return; case VRModuleDeviceClass.Controller: if (s_viveCosmosRgx.IsMatch(deviceState.modelNumber)) { if (s_leftRgx.IsMatch(deviceState.renderModelName)) { deviceState.deviceModel = VRModuleDeviceModel.ViveCosmosControllerLeft; } else if (s_rightRgx.IsMatch(deviceState.renderModelName)) { deviceState.deviceModel = VRModuleDeviceModel.ViveCosmosControllerRight; } deviceState.input2DType = VRModuleInput2DType.JoystickOnly; } else { deviceState.deviceModel = VRModuleDeviceModel.ViveController; deviceState.input2DType = VRModuleInput2DType.TouchpadOnly; } return; case VRModuleDeviceClass.GenericTracker: deviceState.deviceModel = VRModuleDeviceModel.ViveTracker; return; case VRModuleDeviceClass.TrackingReference: deviceState.deviceModel = VRModuleDeviceModel.ViveBaseStation; return; } } else if (s_oculusRgx.IsMatch(deviceState.modelNumber)) { switch (deviceState.deviceClass) { case VRModuleDeviceClass.HMD: deviceState.deviceModel = VRModuleDeviceModel.OculusHMD; return; case VRModuleDeviceClass.Controller: if (s_leftRgx.IsMatch(deviceState.modelNumber)) { deviceState.deviceModel = VRModuleDeviceModel.OculusTouchLeft; deviceState.input2DType = VRModuleInput2DType.JoystickOnly; return; } else if (s_rightRgx.IsMatch(deviceState.modelNumber)) { deviceState.deviceModel = VRModuleDeviceModel.OculusTouchRight; deviceState.input2DType = VRModuleInput2DType.JoystickOnly; return; } break; case VRModuleDeviceClass.TrackingReference: deviceState.deviceModel = VRModuleDeviceModel.OculusSensor; return; } } else if (s_wmrRgx.IsMatch(deviceState.modelNumber) || s_wmrRgx.IsMatch(deviceState.renderModelName)) { switch (deviceState.deviceClass) { case VRModuleDeviceClass.HMD: deviceState.deviceModel = VRModuleDeviceModel.WMRHMD; return; case VRModuleDeviceClass.Controller: if (s_leftRgx.IsMatch(deviceState.modelNumber) && VRModule.GetLeftControllerDeviceIndex() == deviceState.deviceIndex) { deviceState.deviceModel = VRModuleDeviceModel.WMRControllerLeft; deviceState.input2DType = VRModuleInput2DType.Both; return; } else if (s_rightRgx.IsMatch(deviceState.modelNumber) && VRModule.GetRightControllerDeviceIndex() == deviceState.deviceIndex) { deviceState.deviceModel = VRModuleDeviceModel.WMRControllerRight; deviceState.input2DType = VRModuleInput2DType.Both; return; } break; } } else if (deviceState.deviceClass == VRModuleDeviceClass.Controller && s_knucklesRgx.IsMatch(deviceState.modelNumber)) { if (s_leftRgx.IsMatch(deviceState.renderModelName)) { deviceState.deviceModel = VRModuleDeviceModel.KnucklesLeft; deviceState.input2DType = VRModuleInput2DType.TrackpadOnly; return; } else if (s_rightRgx.IsMatch(deviceState.renderModelName)) { deviceState.deviceModel = VRModuleDeviceModel.KnucklesRight; deviceState.input2DType = VRModuleInput2DType.TrackpadOnly; return; } } else if (s_daydreamRgx.IsMatch(deviceState.modelNumber)) { switch (deviceState.deviceClass) { case VRModuleDeviceClass.HMD: deviceState.deviceModel = VRModuleDeviceModel.DaydreamHMD; return; case VRModuleDeviceClass.Controller: deviceState.deviceModel = VRModuleDeviceModel.DaydreamController; deviceState.input2DType = VRModuleInput2DType.TrackpadOnly; return; } } deviceState.deviceModel = VRModuleDeviceModel.Unknown; }
protected static void SetupKnownDeviceModel(IVRModuleDeviceStateRW deviceState) { //Debug.LogError(deviceState.modelNumber + "|" + deviceState.renderModelName); if (s_viveRgx.IsMatch(deviceState.modelNumber) || s_viveRgx.IsMatch(deviceState.renderModelName)) { switch (deviceState.deviceClass) { case VRModuleDeviceClass.HMD: deviceState.deviceModel = VRModuleDeviceModel.ViveHMD; return; case VRModuleDeviceClass.Controller: if (s_viveCosmosRgx.IsMatch(deviceState.modelNumber)) { if (s_leftRgx.IsMatch(deviceState.renderModelName)) { deviceState.deviceModel = VRModuleDeviceModel.ViveCosmosControllerLeft; } else if (s_rightRgx.IsMatch(deviceState.renderModelName)) { deviceState.deviceModel = VRModuleDeviceModel.ViveCosmosControllerRight; } deviceState.input2DType = VRModuleInput2DType.JoystickOnly; } else { deviceState.deviceModel = VRModuleDeviceModel.ViveController; deviceState.input2DType = VRModuleInput2DType.TouchpadOnly; } return; case VRModuleDeviceClass.GenericTracker: deviceState.deviceModel = VRModuleDeviceModel.ViveTracker; return; case VRModuleDeviceClass.TrackingReference: deviceState.deviceModel = VRModuleDeviceModel.ViveBaseStation; return; } } else if (s_oculusRgx.IsMatch(deviceState.modelNumber)) { switch (deviceState.deviceClass) { case VRModuleDeviceClass.HMD: deviceState.deviceModel = VRModuleDeviceModel.OculusHMD; return; case VRModuleDeviceClass.Controller: if (Application.platform == RuntimePlatform.Android) { if (deviceState.modelNumber.Contains("Go")) { deviceState.deviceModel = VRModuleDeviceModel.OculusGoController; deviceState.input2DType = VRModuleInput2DType.TouchpadOnly; return; } else if (s_leftRgx.IsMatch(deviceState.modelNumber)) { deviceState.deviceModel = VRModuleDeviceModel.OculusQuestControllerLeft; deviceState.input2DType = VRModuleInput2DType.JoystickOnly; return; } else if (s_rightRgx.IsMatch(deviceState.modelNumber)) { deviceState.deviceModel = VRModuleDeviceModel.OculusQuestControllerRight; deviceState.input2DType = VRModuleInput2DType.JoystickOnly; return; } } else { if (s_leftRgx.IsMatch(deviceState.modelNumber)) { deviceState.deviceModel = VRModuleDeviceModel.OculusTouchLeft; deviceState.input2DType = VRModuleInput2DType.JoystickOnly; return; } else if (s_rightRgx.IsMatch(deviceState.modelNumber)) { deviceState.deviceModel = VRModuleDeviceModel.OculusTouchRight; deviceState.input2DType = VRModuleInput2DType.JoystickOnly; return; } } break; case VRModuleDeviceClass.TrackingReference: deviceState.deviceModel = VRModuleDeviceModel.OculusSensor; return; } } else if (s_wmrRgx.IsMatch(deviceState.modelNumber) || s_wmrRgx.IsMatch(deviceState.renderModelName)) { switch (deviceState.deviceClass) { case VRModuleDeviceClass.HMD: deviceState.deviceModel = VRModuleDeviceModel.WMRHMD; return; case VRModuleDeviceClass.Controller: if (s_leftRgx.IsMatch(deviceState.modelNumber) && VRModule.GetLeftControllerDeviceIndex() == deviceState.deviceIndex) { deviceState.deviceModel = VRModuleDeviceModel.WMRControllerLeft; deviceState.input2DType = VRModuleInput2DType.Both; return; } else if (s_rightRgx.IsMatch(deviceState.modelNumber) && VRModule.GetRightControllerDeviceIndex() == deviceState.deviceIndex) { deviceState.deviceModel = VRModuleDeviceModel.WMRControllerRight; deviceState.input2DType = VRModuleInput2DType.Both; return; } break; } } else if (deviceState.deviceClass == VRModuleDeviceClass.Controller && s_knucklesRgx.IsMatch(deviceState.modelNumber)) { if (s_leftRgx.IsMatch(deviceState.renderModelName)) { deviceState.deviceModel = VRModuleDeviceModel.KnucklesLeft; deviceState.input2DType = VRModuleInput2DType.TrackpadOnly; return; } else if (s_rightRgx.IsMatch(deviceState.renderModelName)) { deviceState.deviceModel = VRModuleDeviceModel.KnucklesRight; deviceState.input2DType = VRModuleInput2DType.TrackpadOnly; return; } } else if (s_daydreamRgx.IsMatch(deviceState.modelNumber)) { switch (deviceState.deviceClass) { case VRModuleDeviceClass.HMD: deviceState.deviceModel = VRModuleDeviceModel.DaydreamHMD; return; case VRModuleDeviceClass.Controller: deviceState.deviceModel = VRModuleDeviceModel.DaydreamController; deviceState.input2DType = VRModuleInput2DType.TrackpadOnly; return; } } else if (deviceState.modelNumber == "zSpace RightHand" && deviceState.modelNumber == "zSpace RightHand") { deviceState.deviceModel = VRModuleDeviceModel.zSpaceStylusController; return; } else if (deviceState.modelNumber == "PC RightHand" && deviceState.modelNumber == "PC RightHand") { deviceState.deviceModel = VRModuleDeviceModel.PCStylusController; return; } PlatformType currentPlatform = (PlatformType)Enum.Parse(typeof(PlatformType), PlayerPrefs.GetString("CurrentPlateform", "PC")); Debug.LogError("currentPlatform Test " + currentPlatform); deviceState.deviceModel = VRModuleDeviceModel.Unknown; }