示例#1
0
 // Start is called before the first frame update
 void Start()
 {
     MLInput.Start();
     controller = MLInput.GetController(MLInput.Hand.Left);
     UnSelectAll();
     up.SetActive(true);
 }
示例#2
0
 // Start is called before the first frame update
 void Start()
 {
     MLInput.Start();
     //MLInput.OnControllerButtonDown += OnButtonDown;
     //MLInput.OnControllerButtonUp += OnButtonUp;
     controller = MLInput.GetController(MLInput.Hand.Left);
 }
示例#3
0
        //Private Methods:
        private void GetControl()
        {
            for (int i = 0; i < 2; ++i)
            {
                MLInput.Controller control = MLInput.GetController(i);
                if (control.Type == MLInput.Controller.ControlType.Control)
                {
                    switch (handedness)
                    {
                    case ControlHandedness.Any:
                        Initialize(control);
                        break;

                    case ControlHandedness.Left:
                        if (control.Hand == MLInput.Hand.Left)
                        {
                            Initialize(control);
                        }
                        break;

                    case ControlHandedness.Right:
                        if (control.Hand == MLInput.Hand.Right)
                        {
                            Initialize(control);
                        }
                        break;
                    }
                }
            }
        }
示例#4
0
        /// <summary>
        /// Update controller input based feedback.
        /// </summary>
        void Update()
        {
            if (_controllerConnectionHandler.IsControllerValid())
            {
                #if PLATFORM_LUMIN
                MLInput.Controller controller = _controllerConnectionHandler.ConnectedController;
                if (controller.Type == MLInput.Controller.ControlType.Control)
                {
                    // For Control, raw input is enough
                    transform.localPosition = controller.Position;
                    transform.localRotation = controller.Orientation;
                }
                else if (controller.Type == MLInput.Controller.ControlType.MobileApp)
                {
                    // For Mobile App, there is no positional data and orientation needs calibration
                    transform.position = _camera.transform.position +
                                         (_camera.transform.forward * MOBILEAPP_FORWARD_DISTANCE_FROM_CAMERA * MLDevice.WorldScale) +
                                         (Vector3.up * MOBILEAPP_UP_DISTANCE_FROM_CAMERA * MLDevice.WorldScale);

                    if (_isCalibrated)
                    {
                        transform.localRotation = _calibrationOrientation * controller.Orientation;
                    }
                    else
                    {
                        transform.LookAt(transform.position + Vector3.up, -Camera.main.transform.forward);
                    }
                }
                #endif
            }
        }
示例#5
0
        private void HandleControlConnected(byte controlId)
        {
            //we just want to work with the control:
            MLInput.Controller connectedControl = MLInput.GetController(controlId);

            switch (handedness)
            {
            case ControlHandedness.Any:
                Initialize(MLInput.GetController(controlId));
                break;

            case ControlHandedness.Left:
                if (connectedControl.Hand == MLInput.Hand.Left)
                {
                    Initialize(MLInput.GetController(controlId));
                }
                break;

            case ControlHandedness.Right:
                if (connectedControl.Hand == MLInput.Hand.Right)
                {
                    Initialize(MLInput.GetController(controlId));
                }
                break;
            }
        }
        public static MLInput.Controller.ControlType determineControllerType(byte controllerId)
        {
            //
            // The first controller is considered the left handed controller, even though
            // we may hold the controller in our right hand :)
            //
            MLInput.Controller leftHandController  = MLInput.GetController(MLInput.Hand.Left);
            MLInput.Controller rightHandController = MLInput.GetController(MLInput.Hand.Right);

            bool isMobileAppLeft  = (leftHandController != null && leftHandController.Type == MLInput.Controller.ControlType.MobileApp);
            bool isMobileAppRight = (rightHandController != null && rightHandController.Type == MLInput.Controller.ControlType.MobileApp);

            bool isControllerLeft  = (leftHandController != null && leftHandController.Type == MLInput.Controller.ControlType.Control);
            bool isControllerRight = (rightHandController != null && rightHandController.Type == MLInput.Controller.ControlType.Control);

            bool isMobileApp  = (isMobileAppLeft || isMobileAppRight);
            bool isController = (isControllerLeft || isControllerRight);

            if (isMobileApp)
            {
                return(MLInput.Controller.ControlType.MobileApp);
            }
            if (isController)
            {
                return(MLInput.Controller.ControlType.Control);
            }
            return(MLInput.Controller.ControlType.None);
        }
示例#7
0
        /// <summary>
        /// Update the touchpad's indicator: (location, directions, color).
        /// Also updates the color of the touchpad, based on pressure.
        /// </summary>
        private void UpdateTouchpadIndicator()
        {
            if (!_controllerConnectionHandler.IsControllerValid())
            {
                return;
            }

            #if PLATFORM_LUMIN
            MLInput.Controller controller     = _controllerConnectionHandler.ConnectedController;
            Vector3            updatePosition = new Vector3(controller.Touch1PosAndForce.x, 0.0f, controller.Touch1PosAndForce.y);

            float touchY = _touchIndicatorTransform.localPosition.y;
            _touchIndicatorTransform.localPosition = new Vector3(updatePosition.x * _touchpadRadius / MLDevice.WorldScale, touchY, updatePosition.z * _touchpadRadius / MLDevice.WorldScale);

            if (controller.Touch1Active)
            {
                _touchIndicatorTransform.gameObject.SetActive(true);
                float angle = Mathf.Atan2(controller.Touch1PosAndForce.x, controller.Touch1PosAndForce.y);
                _touchIndicatorTransform.localRotation = Quaternion.Euler(0, angle * Mathf.Rad2Deg, 0);
            }
            else
            {
                _touchIndicatorTransform.gameObject.SetActive(false);
            }

            float force = controller.Touch1PosAndForce.z;
            _touchpadMaterial.color = Color.Lerp(_defaultColor, _activeColor, force);
            #endif
        }
示例#8
0
        /// <summary>
        /// Find the point on the slider that's closest to the line defined by
        /// the controller's position and direction.
        /// </summary>
        /// <param name="controller">Information on the controller</param>
        private void HandleControllerDrag(MLInput.Controller controller)
        {
            // Line 1 is the Controller's ray
            Vector3 P1World = controller.Position;
            Vector3 V1World = controller.Orientation * Vector3.forward;

            // Put controller position and orientation into slider space, as relative end points are in slider space
            Vector3 P1 = transform.InverseTransformPoint(P1World);
            Vector3 V1 = transform.InverseTransformVector(V1World);

            // Line 2 is the slider
            Vector3 P2 = _beginRelative;
            Vector3 V2 = _endRelative - _beginRelative;

            Vector3 deltaP = P2 - P1;
            float   V21    = Vector3.Dot(V2, V1);
            float   V11    = Vector3.Dot(V1, V1);
            float   V22    = Vector3.Dot(V2, V2);

            float tNum = Vector3.Dot(deltaP, V21 * V1 - V11 * V2);
            float tDen = V22 * V11 - V21 * V21;

            // Lines are parallel
            if (Mathf.Approximately(tDen, 0.0f))
            {
                return;
            }

            // closest point on Line 2 to Line 1 is P2 + t * V2
            // but we're only concerned with t
            Value = tNum / tDen;
        }
示例#9
0
        /// <summary>
        /// Update the rotation and visual color of the trigger.
        /// </summary>
        private void UpdateTriggerVisuals()
        {
            if (!_controllerConnectionHandler.IsControllerValid())
            {
                return;
            }

            MLInput.Controller controller = _controllerConnectionHandler.ConnectedController;

            #if PLATFORM_LUMIN
            // Change the color of the trigger
            _triggerMaterial.color = Color.Lerp(_defaultColor, _activeColor, controller.TriggerValue);

            if (_animManager == null)
            {
                if (GameObject.FindObjectOfType <Photon.Pun.Demo.PunBasics.GameManager>() != null)
                {
                    _animManager    = GameObject.FindObjectOfType <Photon.Pun.Demo.PunBasics.GameManager>().GetPlayerAnimatorManager();
                    _beforePosition = _trigger.transform.position;
                }
            }

            if (controller.TriggerValue == 1)
            {
                if (_animManager != null)
                {
                    _animManager.gameObject.GetComponent <Rigidbody>().useGravity = true;

                    if (_beforePosition.x - _trigger.transform.position.x > 0)
                    {
                        _animManager.SetDirection(0.5f);
                    }
                    else if (_beforePosition.x - _trigger.transform.position.x < 0)
                    {
                        _animManager.SetDirection(-0.5f);
                    }
                }
                _beforePosition = _trigger.transform.position;
            }
            else
            {
                if (_animManager != null)
                {
                    _animManager.SetDirection(0f);
                }
                _beforePosition = _trigger.transform.position;
            }
            #endif

            // Set the rotation of the trigger
            Vector3 eulerRot = _trigger.transform.localRotation.eulerAngles;

            #if PLATFORM_LUMIN
            eulerRot.x = Mathf.Lerp(0, MAX_TRIGGER_ROTATION, controller.TriggerValue);
            #endif

            _trigger.transform.localRotation = Quaternion.Euler(eulerRot);
        }
示例#10
0
 private void OnEnable()
 {
     line.enabled = true;
     Debug.Log("line enabled");
     line.startColor = startColor;
     line.endColor   = endColor;
     MLInput.Start();
     controller  = MLInput.GetController(MLInput.Hand.Left);
     triggerDown = false;
 }
示例#11
0
        void MLControllerConnected(byte controllerId)
        {
#if PLATFORM_LUMIN
            MLInput.Controller mlController = MLInput.GetController(controllerId);
            if (mlController.Type == MLInput.Controller.ControlType.Control)
            {
                if (!ConnectedControllers.ContainsKey(controllerId))
                {
                    Handedness handedness = mlController.Hand == MLInput.Hand.Right ? Handedness.Right : Handedness.Left;
                    switch (CurrentControllerSettings)
                    {
                    case HandSettings.None:
                        return;

                    case HandSettings.Left:
                        if (handedness != Handedness.Left)
                        {
                            return;
                        }
                        break;

                    case HandSettings.Right:
                        if (handedness != Handedness.Right)
                        {
                            return;
                        }
                        break;

                    case HandSettings.Both:
                        break;
                    }

                    var pointers        = RequestPointers(SupportedControllerType.GenericUnity, handedness);
                    var inputSourceType = InputSourceType.Controller;

                    IMixedRealityInputSystem inputSystem = Service as IMixedRealityInputSystem;
                    var inputSource = inputSystem?.RequestNewGenericInputSource($"Magic Leap {handedness} Controller", pointers, inputSourceType);

                    MagicLeapMRTKController controller = new MagicLeapMRTKController(mlController, TrackingState.Tracked, handedness, inputSource);
                    for (int i = 0; i < controller.InputSource?.Pointers?.Length; i++)
                    {
                        controller.InputSource.Pointers[i].Controller = controller;
                    }

                    inputSystem?.RaiseSourceDetected(controller.InputSource, controller);
                    ConnectedControllers[controllerId] = new MLControllerContainer()
                    {
                        controllerId   = controllerId,
                        mrtkController = controller
                    };
                    trackedControls.Add(controller);
                }
            }
#endif
        }
示例#12
0
 void OnTriggr()
 {
     if (isActive)
     {
         MLInput.Controller controller = _controllerConnectionHandler.ConnectedController;
         if (controller.TriggerValue > 0.2f)
         {
             isActive = false;
         }
     }
 }
示例#13
0
        /// <summary>
        /// Handles the event for trigger down.
        /// </summary>
        /// <param name="controller_id">The id of the controller.</param>
        /// <param name="value">The value of the trigger button.</param>
        private void HandleOnTriggerDown(byte controllerId, float value)
        {
            MLInput.Controller controller = _controllerConnectionHandler.ConnectedController;

            #if PLATFORM_LUMIN
            if (controller != null && controller.Id == controllerId)
            {
                MLInput.Controller.FeedbackIntensity intensity = (MLInput.Controller.FeedbackIntensity)((int)(value * 2.0f));
                controller.StartFeedbackPatternVibe(MLInput.Controller.FeedbackPatternVibe.Buzz, intensity);
            }
            #endif
        }
示例#14
0
        public MagicLeapMRTKController(MLInput.Controller controller, TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) : base(trackingState, controllerHandedness, inputSource, interactions)
        {
            mlController = controller;
            MLInput.OnControllerButtonDown += MLControllerButtonDown;
            MLInput.OnControllerButtonUp   += MLControllerButtonUp;
            MLInput.OnTriggerDown          += MLControllerTriggerDown;
            MLInput.OnTriggerUp            += MLControllerTriggerUp;

            IsPositionAvailable   = true;
            IsPositionApproximate = true;
            IsRotationAvailable   = true;
        }
示例#15
0
        /// <summary>
        /// Handles the event for button up.
        /// </summary>
        /// <param name="controller_id">The id of the controller.</param>
        /// <param name="button">The button that is being released.</param>
        private void HandleOnButtonUp(byte controllerId, MLInput.Controller.Button button)
        {
            MLInput.Controller controller = _controllerConnectionHandler.ConnectedController;

            #if PLATFORM_LUMIN
            if (controller != null && controller.Id == controllerId &&
                button == MLInput.Controller.Button.Bumper)
            {
                // Demonstrate haptics using callbacks.
                controller.StartFeedbackPatternVibe(MLInput.Controller.FeedbackPatternVibe.ForceUp, MLInput.Controller.FeedbackIntensity.Medium);
            }
            #endif
        }
示例#16
0
        private void Initialize(MLInput.Controller control)
        {
            //status:
            Control   = control;
            Connected = true;
            OnControlConnected?.Invoke();

            //hooks:
            MLInput.OnControllerButtonDown += HandleControlButtonDown;
            MLInput.OnControllerButtonUp   += HandleControlButtonUp;
            MLInput.OnTriggerDown          += HandleOnTriggerDown;
            MLInput.OnTriggerUp            += HandleOnTriggerUp;
        }
示例#17
0
    private void UpdateTrigger()
    {
        if (!_controllerConnectionHandler.IsControllerValid())
        {
            return;
        }

        MLInput.Controller controller = _controllerConnectionHandler.ConnectedController;
        if (controller.TriggerValue > 0.2f)
        {
            Touch();
        }
    }
示例#18
0
        /// <summary>
        /// Initializes variables.
        /// </summary>
        void Start()
        {
            #if PLATFORM_LUMIN
            MLResult result = MLInput.Start();
            if (!result.IsOk)
            {
                Debug.LogError("Error starting MLInput, disabling script.");
                enabled = false;
                return;
            }
            _controller = MLInput.GetController(MLInput.Hand.Left);
            #endif

            _collider = GetComponent <Collider>();
        }
示例#19
0
    void Update()
    {
        //Follow Controller
        if (_controllerConnectionHandler.IsControllerValid())
        {
#if PLATFORM_LUMIN
            MLInput.Controller controller = _controllerConnectionHandler.ConnectedController;
            if (controller.Type == MLInput.Controller.ControlType.Control)
            {
                transform.position = controller.Position;
                transform.rotation = controller.Orientation;
            }
#endif
        }
    }
示例#20
0
 /// <summary>
 /// For Mobile App, this initiates/ends the recalibration when the home tap event is triggered
 /// </summary>
 /// <param name="controllerId">The id of the controller.</param>
 /// <param name="button">The button that is being released.</param>
 private void HandleOnButtonUp(byte controllerId, MLInput.Controller.Button button)
 {
     #if PLATFORM_LUMIN
     MLInput.Controller controller = _controllerConnectionHandler.ConnectedController;
     if (_controllerConnectionHandler.IsControllerValid(controllerId) &&
         controller.Type == MLInput.Controller.ControlType.MobileApp &&
         button == MLInput.Controller.Button.HomeTap)
     {
         if (!_isCalibrated)
         {
             _calibrationOrientation = transform.rotation * Quaternion.Inverse(controller.Orientation);
         }
         _isCalibrated = !_isCalibrated;
     }
     #endif
 }
示例#21
0
        void Start()
        {
            MLInput.Start();
            MLInput.OnControllerButtonDown += HandleOnButtonDown;
            MLInput.OnControllerButtonUp   += HandleOnButtonUp;
            _controller = MLInput.GetController(MLInput.Hand.Left);
            text        = new string[5];

            scn       = SceneManager.GetActiveScene();
            sceneName = scn.name;

            LogToFileHelper logger = new LogToFileHelper();

            //establishing logger for storing interactions locally as a backup
            StartCoroutine(logger.LogToFileStringArray("log_controller.json", text));
            //creating new session
            StartCoroutine(consoler.NewSession("http://" + LoggingConfig.ip_address + ":" + LoggingConfig.port + "/ext/" + LoggingConfig.api_key + "/new_session"));
        }
示例#22
0
    private void Awake()
    {
        MLInput.Start();
        spawnMngr    = GetComponent <SpawnManager>();
        audioManager = GameObject.Find("AudioManager").GetComponent <AudioManager>();
        scoreKeeping = GameObject.Find("[Content]/Controller").GetComponent <ScoreKeeping>();
        trailAndBall = spawnMngr.trailAndBall.GetComponent <DisplayTrailAndBall>();
        _control     = MLInput.GetController(MLInput.Hand.Left);

        scoreText.enabled      = false;
        summaryText.enabled    = false;
        statusText.enabled     = false;
        helpText.enabled       = false;
        beamController.enabled = false;
        spawnMngr.enabled      = false;
        menu.SetActive(false);
        canvas.SetActive(false);
        settings.SetActive(false);

        // update setting text to reflect current settings
        pathOn = trailAndBall.trails[0].activeSelf;
        if (GameObject.Find("[Content]/MLSpatialMapper/Original").GetComponent <Renderer>().material.mainTexture == null)
        {
            meshOn = false;
        }
        else
        {
            meshOn = true;
        }


        foreach (SettingType type in Enum.GetValues(typeof(SettingType)))
        {
            SetSettingText(type);
        }

        Playspace.Instance.OnCompleted.AddListener(OnPlayspaceComplete);
        Playspace.Instance.OnCleared.AddListener(OnPlayspaceClear);
        MLInput.OnControllerButtonUp  += OnButtonUp;
        scoreKeeper.ScoreChange       += OnScoreChange;
        beamController.OptionSelected += OnOptionSelected;

        wallStat = WallStat.Empty;
    }
        /// <summary>
        /// Updates effects on different input responses via input polling mechanism.
        /// </summary>
        void Update()
        {
            if (_controllerConnectionHandler.IsControllerValid())
            {
                MLInput.Controller controller = _controllerConnectionHandler.ConnectedController;
                _modelRenderer.material.color = _origColor;

                #if PLATFORM_LUMIN
                UpdateTouchIndicator(_touch1Indicator, controller.Touch1Active, controller.Touch1PosAndForce);
                UpdateTouchIndicator(_touch2Indicator, controller.Touch2Active, controller.Touch2PosAndForce);
                #endif

                UpdateHighlights();
            }
            else
            {
                _modelRenderer.material.color = Color.red;
            }
        }
示例#24
0
        void Update()
        {
            _statusText.text = string.Format("<color=#dbfb76><b>{0}</b></color>\n{1}: {2}\n",
                                             LocalizeManager.GetString("Controller Data"),
                                             LocalizeManager.GetString("Status"),
                                             LocalizeManager.GetString(ControllerStatus.Text));

            MLInput.Controller controller = _controllerConnectionHandler.ConnectedController;
            if (controller != null)
            {
                #if PLATFORM_LUMIN
                _statusText.text += string.Format("" +
                                                  "Position: <i>{0}</i>\n" +
                                                  "Rotation: <i>{1}</i>\n\n" +
                                                  "<color=#dbfb76><b>Buttons</b></color>\n" +
                                                  "Trigger: <i>{2}</i>\n" +
                                                  "Bumper: <i>{3}</i>\n\n" +
                                                  "<color=#dbfb76><b>Touchpad</b></color>\n" +
                                                  "Touch 1 Location: <i>({4},{5})</i>\n" +
                                                  "Touch 2 Location: <i>({6},{7})</i>\n\n" +
                                                  "<color=#dbfb76><b>Gestures</b></color>\n" +
                                                  "<i>{8} {9}</i>\n\n",

                                                  "No information available",
                                                  controller.Orientation.eulerAngles.ToString("n2"),
                                                  controller.TriggerValue.ToString("n2"),
                                                  controller.IsBumperDown,
                                                  controller.Touch1Active ? controller.Touch1PosAndForce.x.ToString("n2") : "0.00",
                                                  controller.Touch1Active ? controller.Touch1PosAndForce.y.ToString("n2") : "0.00",
                                                  controller.Touch2Active ? controller.Touch2PosAndForce.x.ToString("n2") : "0.00",
                                                  controller.Touch2Active ? controller.Touch2PosAndForce.y.ToString("n2") : "0.00",
                                                  controller.CurrentTouchpadGesture.Type.ToString(),
                                                  controller.TouchpadGestureState.ToString());
                #endif

                _statusText.text += string.Format("<color=#dbfb76><b>{0}</b></color>\n{1}: {2}",
                                                  LocalizeManager.GetString("Keyboard"),
                                                  LocalizeManager.GetString("Input"),
                                                  LocalizeManager.GetString(_mobileAppVisualizer.KeyboardText));
            }
        }
示例#25
0
        IEnumerator ConnectOnValidPosition(byte controllerId)
        {
#if PLATFORM_LUMIN
            MLInput.Controller mlController    = MLInput.GetController(controllerId);
            Vector3            initialPosition = mlController.Position;
            while (initialPosition == mlController.Position)
            {
                yield return(null);
            }
            if (mlController.Type == MLInput.Controller.ControlType.Control)
            {
                if (!ConnectedControllers.ContainsKey(controllerId))
                {
                    Handedness handedness = mlController.Hand == MLInput.Hand.Right ? Handedness.Right : Handedness.Left;
                    if (!IsHandednessValid(handedness, CurrentControllerSettings))
                    {
                        yield break;
                    }

                    var pointers        = RequestPointers(SupportedControllerType.GenericUnity, handedness);
                    var inputSourceType = InputSourceType.Controller;

                    var inputSource = Service?.RequestNewGenericInputSource($"Magic Leap {handedness} Controller", pointers, inputSourceType);

                    MagicLeapMRTKController controller = new MagicLeapMRTKController(mlController, TrackingState.Tracked, handedness, inputSource);
                    for (int i = 0; i < controller.InputSource?.Pointers?.Length; i++)
                    {
                        controller.InputSource.Pointers[i].Controller = controller;
                    }

                    Service?.RaiseSourceDetected(controller.InputSource, controller);
                    ConnectedControllers[controllerId] = new MLControllerContainer()
                    {
                        controllerId   = controllerId,
                        mrtkController = controller
                    };
                    trackedControls.Add(controller);
                }
            }
#endif
        }
示例#26
0
        /// <summary>
        /// Try get controller reference.
        ///
        /// This is because "MLInput.OnControllerConnected" event won't invoke.
        /// I think why Zenject.IInitialize timing is too late to register an event.
        /// So this method try to get a reference cotroller at the initializing.
        /// </summary>
        private void TryGetController()
        {
            if (_inputController != null)
            {
                return;
            }

            if (!MLInput.IsStarted)
            {
                return;
            }

            MLResult result = MLInput.Start();

            if (!result.IsOk)
            {
                return;
            }

            _inputController = MLInput.GetController(0);
        }
示例#27
0
        void Start()
        {
            MLInput.Start();
            camera      = GameObject.FindWithTag("MainCamera");
            _controller = MLInput.GetController(MLInput.Hand.Left);
            text        = new string[4];
            // text[0] = "default";
            // text[1] = "default";
            // text[2] = "default";
            // text[3] = "default";

            scn       = SceneManager.GetActiveScene();
            sceneName = scn.name;

            LogToFileHelper logger = new LogToFileHelper();

            //establishing logger for storing interactions locally as a backup
            StartCoroutine(logger.LogToFileStringArray("log_touchpad.json", text));
            //creating new session
            StartCoroutine(consoler.NewSession("http://" + LoggingConfig.ip_address + ":" + LoggingConfig.port + "/ext/" + LoggingConfig.api_key + "/new_session"));
        }
示例#28
0
 /// <summary>
 /// Update the text for the currently connected Control or MCA device.
 /// </summary>
 private void UpdateStatus()
 {
     if (_controllerConnectionHandler.enabled)
     {
         if (_controllerConnectionHandler.IsControllerValid())
         {
             #if PLATFORM_LUMIN
             MLInput.Controller controller = _controllerConnectionHandler.ConnectedController;
             if (controller.Type == MLInput.Controller.ControlType.Control)
             {
                 Text  = "Controller Connected";
                 Color = Color.green;
             }
             else if (controller.Type == MLInput.Controller.ControlType.MobileApp)
             {
                 Text  = "MLA Connected";
                 Color = Color.green;
             }
             else
             {
                 Text  = "Unknown";
                 Color = Color.red;
             }
             #else
             Text  = "Unknown";
             Color = Color.red;
             #endif
         }
         else
         {
             Text  = "Disconnected";
             Color = Color.yellow;
         }
     }
     else
     {
         Text  = "Input Failed to Start";
         Color = Color.red;
     }
 }
示例#29
0
 /// <summary>
 /// Update cursor position based on touch
 /// </summary>
 /// <param name="controller">Controller</param>
 private void UpdateTouchPosition(MLInput.Controller controller)
 {
     if (controller.Touch1Active)
     {
         if (_touchActiveBefore)
         {
             Vector2 pos          = transform.localPosition;
             Vector2 currTouchPos = controller.Touch1PosAndForce;
             pos += (currTouchPos - _prevTouchPos) * _sensitivity;
             transform.localPosition = pos;
         }
         else
         {
             _prevTouchPos = controller.Touch1PosAndForce;
         }
         _touchActiveBefore = true;
     }
     else
     {
         _touchActiveBefore = false;
     }
 }
示例#30
0
    // Start is called before the first frame update
    void Start()
    {
        MLInput.Start();
        MLInput.OnControllerButtonDown += OnButtonDown;
        //MLInput.OnControllerButtonUp += OnButtonUp;
        controller = MLInput.GetController(MLInput.Hand.Left);
        kill       = 0;
        gates      = Environment.instance.transform.GetChild(3);//0:Mapper 1:MapperNode 2:Origin 3:Gates

        totalGates = gates.childCount;

        //0:cylinder 1:Generattor 2:Hole 3:Collider

        foreach (Transform gate in gates)
        {
            gate.GetChild(3).gameObject.SetActive(false);//Colliderの消去
        }

        gates.GetChild(0).GetChild(0).gameObject.SetActive(true);
        gates.GetChild(0).GetChild(1).gameObject.SetActive(true);
        gates.GetChild(0).GetChild(2).gameObject.SetActive(true);
    }