/// <summary> /// Activates the Path Tool. /// </summary> /// <param name="createGadgetsAlongPath">The function to call back upon finishing drawing.</param> public void Activate(Action <Vector3[], float> createGadgetsAlongPath) { mPointer.Toggle(true); mPointerRenderer.validCollisionColor = Color.green; mPointerRenderer.invalidCollisionColor = Color.white; pathCompleteCallBack = createGadgetsAlongPath; this.enabled = true; }
protected override void Process(GameObject controlledGameObject, Transform directionDevice, Vector3 axisDirection, float axis, float deadzone, bool currentlyFalling, bool modifierActive) { if (Mathf.Abs(axis) < axisLowerThreshold || (!modifierActive && !XRDevice.model.Contains("Oculus"))) { _axisReturnedToDefault = true; } if (Mathf.Abs(axis) < axisThreshold) { Pointer.enableTeleport = true; } else { Pointer.enableTeleport = false; } if (Mathf.Abs(axis) < axisThreshold) { Pointer.overThreshold = false; } else if (Mathf.Abs(axis) > axisThreshold * 0.9f) { Pointer.overThreshold = true; } if (!ValidThreshold(axis)) { return; } if (!modifierActive && !XRDevice.model.Contains("Oculus")) { return; } float angle = Rotate(axis, false); if (angle != 0f) { Blink(blinkTransitionSpeed); controlledGameObject.transform.RotateAround(directionDevice.position, Vector3.up, angle); _axisReturnedToDefault = false; Pointer.Toggle(false); } }