private void Awake()
        {
            if (!MLInput.IsStarted)
            {
                MLInputConfiguration config = new MLInputConfiguration
                                              (
                    MLInputConfiguration.DEFAULT_TRIGGER_DOWN_THRESHOLD,
                    MLInputConfiguration.DEFAULT_TRIGGER_UP_THRESHOLD,
                    true
                                              );

                MLResult result = MLInput.Start(config);

                if (!result.IsOk)
                {
                    Debug.LogError("Error: MLController failed starting MLInput, disabling script. Reason: " + result);
                    enabled = false;
                    return;
                }
            }

            for (int i = 0; i < buttons.Length; i++)
            {
                buttons[i] = ButtonState.Up;
            }

            controllerTransformComponent = GetComponent <MagicLeap.ControllerTransform>();
        }
Пример #2
0
        /// <inheritdoc />
        public override void Enable()
        {
            if (!MLInput.IsStarted)
            {
                var config = new MLInputConfiguration();
                var result = MLInput.Start(config);

                if (!result.IsOk)
                {
                    Debug.LogError($"Error: failed starting MLInput: {result}");
                    return;
                }
            }

            if (!MLHands.IsStarted)
            {
                var result = MLHands.Start();
                if (!result.IsOk)
                {
                    Debug.LogError($"Error: failed starting MLHands: {result}");
                    return;
                }
            }

            for (byte i = 0; i < 3; i++)
            {
                // Currently no way to know what controllers are already connected.
                // Just guessing there could be no more than 3: Two Spatial Controllers and Mobile App Controller.
                var controller = GetController(i);

                if (controller != null)
                {
                    MixedRealityToolkit.InputSystem?.RaiseSourceDetected(controller.InputSource, controller);
                }
            }

            MLInput.OnControllerConnected    += OnControllerConnected;
            MLInput.OnControllerDisconnected += OnControllerDisconnected;
            MLInput.OnControllerButtonDown   += MlInputOnControllerButtonDown;
        }
        private void StartMLInput()
        {
            bool requestCFUID = true;

            if (!MLInput.IsStarted)
            {
                MLInputConfiguration config = new MLInputConfiguration(MLInputConfiguration.DEFAULT_TRIGGER_DOWN_THRESHOLD,
                                                                       MLInputConfiguration.DEFAULT_TRIGGER_UP_THRESHOLD,
                                                                       requestCFUID);
                MLResult result = MLInput.Start(config);
                if (!result.IsOk)
                {
                    Debug.LogErrorFormat("Error: ControllerConnectionHandler failed starting MLInput, disabling script. Reason: {0}", result);
                    return;
                }
            }

            MLInput.OnControllerConnected    += HandleOnControllerConnected;
            MLInput.OnControllerDisconnected += HandleOnControllerDisconnected;
            MLInput.OnControllerButtonUp     += HandleOnButtonUp;
            MLInput.OnControllerButtonDown   += HandleOnButtonDown;
        }
Пример #4
0
        private void StartMLInput()
        {
            bool requestCFUID = true;

            if (!MLInput.IsStarted)
            {
                MLInputConfiguration config = new MLInputConfiguration(MLInputConfiguration.DEFAULT_TRIGGER_DOWN_THRESHOLD,
                                                                       MLInputConfiguration.DEFAULT_TRIGGER_UP_THRESHOLD,
                                                                       requestCFUID);
                MLResult result = MLInput.Start(config);
                if (!result.IsOk)
                {
                    Debug.LogErrorFormat("Error: ControllerConnectionHandler failed starting MLInput, disabling script. Reason: {0}", result);
                    return;
                }
                else
                {
                    // When using SDK 0.21.0+Unity2019.1.x
                    // controllers might be already connected at this frame.
                    // In that case the callback is never called.
                    // That's why try to find connected controllers.

                    var controller = MLInput.GetController(MLInput.Hand.Right) ?? MLInput.GetController(MLInput.Hand.Left);

                    if (controller != null)
                    {
                        HandleOnControllerConnected(controller.Id);
                    }
                }
            }

            MLInput.OnControllerConnected    += HandleOnControllerConnected;
            MLInput.OnControllerDisconnected += HandleOnControllerDisconnected;
            MLInput.OnControllerButtonUp     += HandleOnButtonUp;
            MLInput.OnControllerButtonDown   += HandleOnButtonDown;
        }