public override void Start(HumanoidControl _humanoid, Transform targetTransform) { base.Start(_humanoid, targetTransform); tracker = handTarget.humanoid.oculus; if (tracker == null || !tracker.enabled || !enabled) { return; } SetSensor2Target(); CheckSensorTransform(); ShowSensor(handTarget.humanoid.showRealObjects && target.showRealObjects); if (sensorTransform != null) { oculusController = sensorTransform.GetComponent <OculusControllerComponent>(); if (oculusController != null) { #if UNITY_ANDROID if (handTarget.humanoid.oculus.androidDeviceType == OculusTracker.AndroidDeviceType.GearVR || handTarget.humanoid.oculus.androidDeviceType == OculusTracker.AndroidDeviceType.OculusGo) { oculusController.positionalTracking = false; } else #endif oculusController.positionalTracking = true; oculusController.StartComponent(tracker.trackerTransform); } } }
protected static void CheckControllerComponent(HandTarget handTarget) { if (handTarget.oculus.sensorTransform == null) { return; } OculusControllerComponent sensorComponent = handTarget.oculus.sensorTransform.GetComponent <OculusControllerComponent>(); if (sensorComponent == null) { sensorComponent = handTarget.oculus.sensorTransform.gameObject.AddComponent <OculusControllerComponent>(); } sensorComponent.isLeft = handTarget.isLeft; }
protected override void CreateSensorTransform() { //#if UNITY_ANDROID // string controllerName; // switch (controllerType) { // case ControllerType.GearVR: // controllerName = "GearVR Controller"; // break; // case ControllerType.OculusGo: // default: // controllerName = "OculusGo Controller"; // break; // } // if (handTarget.isLeft) // CreateSensorTransform(controllerName, new Vector3(-0.1F, -0.05F, 0.04F), Quaternion.Euler(180, 90, 90)); // else // CreateSensorTransform(controllerName, new Vector3(0.1F, -0.05F, 0.04F), Quaternion.Euler(180, -90, -90)); //#else // if (handTarget.isLeft) // CreateSensorTransform("Left Touch Controller", new Vector3(-0.1F, -0.05F, 0.04F), Quaternion.Euler(180, 90, 90)); // else // CreateSensorTransform("Right Touch Controller", new Vector3(0.1F, -0.05F, 0.04F), Quaternion.Euler(180, -90, -90)); //#endif if (handTarget.isLeft) { string controllerName = "Left Touch Controller"; #if UNITY_ANDROID switch (handTarget.humanoid.oculus.androidDeviceType) { case OculusTracker.AndroidDeviceType.GearVR: controllerName = "GearVR Controller"; break; case OculusTracker.AndroidDeviceType.OculusGo: controllerName = "OculusGo Controller"; break; case OculusTracker.AndroidDeviceType.OculusQuest: controllerName = "Left Quest Controller"; break; default: break; } #endif CreateSensorTransform(controllerName, new Vector3(-0.1F, -0.05F, 0.04F), Quaternion.Euler(180, 90, 90)); } else { string controllerName = "Right Touch Controller"; #if UNITY_ANDROID switch (handTarget.humanoid.oculus.androidDeviceType) { case OculusTracker.AndroidDeviceType.GearVR: controllerName = "GearVR Controller"; break; case OculusTracker.AndroidDeviceType.OculusGo: controllerName = "OculusGo Controller"; break; case OculusTracker.AndroidDeviceType.OculusQuest: controllerName = "Right Quest Controller"; break; default: break; } #endif CreateSensorTransform(controllerName, new Vector3(0.1F, -0.05F, 0.04F), Quaternion.Euler(180, -90, -90)); } OculusControllerComponent oculusController = sensorTransform.GetComponent <OculusControllerComponent>(); if (oculusController == null) { oculusController = sensorTransform.gameObject.AddComponent <OculusControllerComponent>(); } oculusController.isLeft = handTarget.isLeft; }
private void OnEnable() { controllerComponent = (OculusControllerComponent)target; }