예제 #1
0
    public override void OnXboxInputUpdate(XboxControllerEventData eventData)
    {
        // Debug.Log("hahahah");
        // GameObject.FindGameObjectWithTag("CurrentSelectedTag").a

        //if (string.IsNullOrEmpty(GamePadName))
        //{
        //    Debug.LogFormat("Joystick {0} with id: \"{1}\" Connected", eventData.GamePadName, eventData.SourceId);
        //}

        //base.OnXboxInputUpdate(eventData);

        //if (eventData.XboxRightBumper_Down)
        //{
        //    menuIterator = (menuIterator + 1) % dmxChannelCount;
        //}
        //if (eventData.XboxLeftBumper_Down)
        //{
        //    menuIterator = (menuIterator + dmxChannelCount - 1) % dmxChannelCount;
        //}

        //if (eventData.XboxA_Down)
        //{
        //    GameObject.FindGameObjectWithTag("CurrentSelectedTag").GetComponent<MeshRenderer>().enabled = true;
        //}

        //menuOptions[menuIterator].value += eventData.XboxRightStickHorizontalAxis * sliderSpeedMultiplier;
        //menuOptions[menuIterator].value = Math.Min(menuOptions[menuIterator].value, 1.0f);
        //menuOptions[menuIterator].value = Math.Max(menuOptions[menuIterator].value, 0.0f);
    }
        public virtual void OnXboxInputUpdate(XboxControllerEventData eventData)
        {
            if (string.IsNullOrEmpty(GamePadName))
            {
                GamePadName = eventData.GamePadName;
            }

            if (XboxControllerMapping.GetButton_Down(SelectButton, eventData))
            {
                CurrentGestureState = GestureState.SelectButtonPressed;

                InputManager.Instance.RaiseSourceDown(eventData.InputSource, eventData.SourceId, InteractionSourcePressInfo.Select);

                HoldStartedRoutine = StartCoroutine(HandleHoldStarted(eventData));
            }

            if (XboxControllerMapping.GetButton_Pressed(SelectButton, eventData))
            {
                HandleNavigation(eventData);
            }

            if (XboxControllerMapping.GetButton_Up(SelectButton, eventData))
            {
                HandleSelectButtonReleased(eventData);
            }

            // Consume this event
            eventData.Use();
        }
        protected virtual void HandleNavigation(XboxControllerEventData eventData)
        {
            float displacementAlongX = XboxControllerMapping.GetAxis(HorizontalNavigationAxis, eventData);
            float displacementAlongY = XboxControllerMapping.GetAxis(VerticalNavigationAxis, eventData);

            if (displacementAlongX == 0.0f && displacementAlongY == 0.0f && CurrentGestureState != GestureState.NavigationStarted)
            {
                return;
            }

            NormalizedOffset.x = displacementAlongX;
            NormalizedOffset.y = displacementAlongY;
            NormalizedOffset.z = 0f;

            if (CurrentGestureState != GestureState.NavigationStarted)
            {
                if (CurrentGestureState == GestureState.HoldStarted)
                {
                    InputManager.Instance.RaiseHoldCanceled(eventData.InputSource, eventData.SourceId);
                }

                CurrentGestureState = GestureState.NavigationStarted;

                // Raise navigation started event.
                InputManager.Instance.RaiseNavigationStarted(eventData.InputSource, eventData.SourceId);
            }
            else
            {
                // Raise navigation updated event.
                InputManager.Instance.RaiseNavigationUpdated(eventData.InputSource, eventData.SourceId, NormalizedOffset);
            }
        }
        protected virtual void HandleSelectButtonReleased(XboxControllerEventData eventData)
        {
            InputManager.Instance.RaiseSourceUp(eventData.InputSource, eventData.SourceId, InteractionSourcePressInfo.Select);

            if (HoldStartedRoutine != null)
            {
                StopCoroutine(HoldStartedRoutine);
            }

            switch (CurrentGestureState)
            {
            case GestureState.NavigationStarted:
                InputManager.Instance.RaiseNavigationCompleted(eventData.InputSource, eventData.SourceId, Vector3.zero);
                break;

            case GestureState.HoldStarted:
                InputManager.Instance.RaiseHoldCompleted(eventData.InputSource, eventData.SourceId);
                break;

            default:
                InputManager.Instance.RaiseInputClicked(eventData.InputSource, eventData.SourceId, InteractionSourcePressInfo.Select, 1);
                break;
            }

            CurrentGestureState = GestureState.SelectButtonUnpressed;
        }
예제 #5
0
        public static float GetAxis(XboxControllerMappingTypes axisType, XboxControllerEventData eventData)
        {
            switch (axisType)
            {
            case XboxControllerMappingTypes.XboxLeftStickHorizontal:
                return(eventData.XboxLeftStickHorizontalAxis);

            case XboxControllerMappingTypes.XboxLeftStickVertical:
                return(eventData.XboxLeftStickVerticalAxis);

            case XboxControllerMappingTypes.XboxRightStickHorizontal:
                return(eventData.XboxRightStickHorizontalAxis);

            case XboxControllerMappingTypes.XboxRightStickVertical:
                return(eventData.XboxRightStickVerticalAxis);

            case XboxControllerMappingTypes.XboxDpadHorizontal:
                return(eventData.XboxDpadHorizontalAxis);

            case XboxControllerMappingTypes.XboxDpadVertical:
                return(eventData.XboxDpadVerticalAxis);

            case XboxControllerMappingTypes.XboxLeftTrigger:
                return(eventData.XboxLeftTriggerAxis);

            case XboxControllerMappingTypes.XboxRightTrigger:
                return(eventData.XboxRightTriggerAxis);

            case XboxControllerMappingTypes.XboxSharedTrigger:
                return(eventData.XboxSharedTriggerAxis);

            default:
                throw new ArgumentOutOfRangeException("axisType", axisType, null);
            }
        }
        protected virtual IEnumerator HandleHoldStarted(XboxControllerEventData eventData)
        {
            yield return(new WaitForSeconds(HoldStartedInterval));

            if (CurrentGestureState == GestureState.HoldStarted || CurrentGestureState == GestureState.NavigationStarted)
            {
                yield break;
            }

            CurrentGestureState = GestureState.HoldStarted;

            InputManager.Instance.RaiseHoldStarted(eventData.InputSource, eventData.SourceId);
        }
        public override void OnXboxInputUpdate(XboxControllerEventData eventData)
        {
            if (string.IsNullOrEmpty(GamePadName))
            {
                Debug.LogFormat("Joystick {0} with id: \"{1}\" Connected", eventData.GamePadName, eventData.SourceId);
            }

            base.OnXboxInputUpdate(eventData);

            /*get information from xbox controller*/

            if (eventData.XboxLeftStickHorizontalAxis != 0 || eventData.XboxLeftStickVerticalAxis != 0)
            {
                msg = string.Format("{1} {0} 0 {2}", (-0.2) * eventData.XboxLeftStickHorizontalAxis, (-0.2) * eventData.XboxLeftStickVerticalAxis, robotIP);
                client.Publish(topicPublishPath, Encoding.UTF8.GetBytes(msg), MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE, true);
            }
            if (eventData.XboxLeftBumper_Pressed)
            {
                msg = string.Format("0 0 15 {0}", robotIP);
                client.Publish(topicPublishPath, Encoding.UTF8.GetBytes(msg), MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE, true);
            }
            else if (eventData.XboxRightBumper_Pressed)
            {
                msg = string.Format("0 0 -15 {0}", robotIP);
                client.Publish(topicPublishPath, Encoding.UTF8.GetBytes(msg), MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE, true);
            }
            if (eventData.XboxB_Pressed)
            {
                if (Time.time - first_buttonpressed > timeBetweenbuttonpressed)
                {
                    msg = string.Format("b");
                    client.Publish(topicPublishPath_button, Encoding.UTF8.GetBytes(msg), MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE, true);
                }
                first_buttonpressed = Time.time;
            }
            if (eventData.XboxX_Pressed)
            {
                if (Time.time - first_buttonpressed > timeBetweenbuttonpressed)
                {
                    if (robotIP == "192.168.10.51")
                    {
                        robotIP = "192.168.10.48";
                    }
                    else
                    {
                        robotIP = "192.168.10.51";
                    }
                }
                first_buttonpressed = Time.time;
            }
        }
예제 #8
0
        public override void OnXboxInputUpdate(XboxControllerEventData eventData)
        {
            if (string.IsNullOrEmpty(GamePadName))
            {
                Debug.LogFormat("Joystick {0} with id: \"{1}\" Connected", eventData.GamePadName, eventData.SourceId);
            }

            base.OnXboxInputUpdate(eventData);

            // Reset our new vectors
            newPosition = Vector3.zero;
            newRotation = Vector3.zero;

            // Assign new Position Data
            newPosition.x += eventData.XboxLeftStickHorizontalAxis * movementSpeedMultiplier;
            newPosition.z += eventData.XboxLeftStickVerticalAxis * movementSpeedMultiplier;
            newPosition.y += eventData.XboxSharedTriggerAxis * movementSpeedMultiplier;

            transform.position += newPosition;

            // Assign new rotation data
            newRotation.y += eventData.XboxRightStickHorizontalAxis * rotationSpeedMultiplier;

            transform.rotation *= Quaternion.Euler(newRotation);

            if (XboxControllerMapping.GetButton_Up(resetButton, eventData))
            {
                transform.position = initialPosition;
            }

            debugText.text =
                string.Format(
                    "{19}\n" +
                    "LS Horizontal: {0:0.000} Vertical: {1:0.000}\n" +
                    "RS Horizontal: {2:0.000} Vertical: {3:0.000}\n" +
                    "DP Horizontal: {4:0.000} Vertical: {5:0.000}\n" +
                    "Left Trigger:  {6:0.000} Right Trigger: {7:0.000} Shared Trigger: {8:0.00}\n" +
                    "A: {9} B: {10} X: {11} Y: {12}\n" +
                    "LB: {13} RB: {14} " +
                    "LS: {15} RS: {16}\n" +
                    "View: {17} Menu: {18}\n",
                    eventData.XboxLeftStickHorizontalAxis, eventData.XboxLeftStickVerticalAxis,
                    eventData.XboxRightStickHorizontalAxis, eventData.XboxRightStickVerticalAxis,
                    eventData.XboxDpadHorizontalAxis, eventData.XboxDpadVerticalAxis,
                    eventData.XboxLeftTriggerAxis, eventData.XboxRightTriggerAxis, eventData.XboxSharedTriggerAxis,
                    eventData.XboxA_Pressed, eventData.XboxB_Pressed, eventData.XboxX_Pressed, eventData.XboxY_Pressed,
                    eventData.XboxLeftBumper_Pressed, eventData.XboxRightBumper_Pressed,
                    eventData.XboxLeftStick_Pressed, eventData.XboxRightStick_Pressed,
                    eventData.XboxView_Pressed, eventData.XboxMenu_Pressed,
                    GamePadName);
        }
예제 #9
0
 public void OnXboxInputUpdate(XboxControllerEventData eventData)
 {
     if (eventData.XboxA_Down)
     {
         if (LightUx != null)
         {
             SliderPanelScript sliderPanelScript = LightUx.GetComponentInChildren <SliderPanelScript>(true);
             if (sliderPanelScript != null &&
                 (!sliderPanelScript.gameObject.activeSelf || sliderPanelScript.CurrentLight != this))
             {
                 sliderPanelScript.Unhide(this);
             }
         }
     }
 }
예제 #10
0
    public override void OnXboxInputUpdate(XboxControllerEventData eventData)
    {
        float x = eventData.XboxLeftStickHorizontalAxis;
        float y = eventData.XboxRightStickVerticalAxis;
        float z = eventData.XboxLeftStickVerticalAxis;

        gameObject.transform.position = initialPosition + new Vector3(x, y, z);

        float roll  = eventData.XboxRightStickHorizontalAxis;
        float pitch = eventData.XboxRightStickVerticalAxis;
        float yaw   = eventData.XboxDpadHorizontalAxis;

        gameObject.transform.rotation *= Quaternion.Euler(roll, pitch, yaw);

        float scale = eventData.XboxDpadHorizontalAxis;

        gameObject.transform.localScale += new Vector3(scale, scale, scale);
    }
        public void OnXboxInputUpdate(XboxControllerEventData eventData)
        {
            if (!UnityEngine.XR.XRDevice.isPresent)
            {
                var speed = (1.0f + TriggerAccerationFactor * eventData.XboxRightTriggerAxis) -
                            (eventData.XboxLeftTriggerAxis * 0.9f);

                gameObject.transform.position += eventData.XboxLeftStickHorizontalAxis *
                                                 gameObject.transform.right * MoveSpeed * speed;
                gameObject.transform.position += eventData.XboxLeftStickVerticalAxis *
                                                 gameObject.transform.forward * MoveSpeed * speed;

                gameObject.transform.RotateAround(gameObject.transform.position,
                                                  gameObject.transform.up,
                                                  eventData.XboxRightStickHorizontalAxis * Rotatespeed * speed);
                gameObject.transform.RotateAround(gameObject.transform.position,
                                                  gameObject.transform.right,
                                                  -eventData.XboxRightStickVerticalAxis * Rotatespeed * speed);

                gameObject.transform.RotateAround(gameObject.transform.position,
                                                  gameObject.transform.forward,
                                                  eventData.XboxDpadHorizontalAxis * Rotatespeed * speed);

                var delta = Mathf.Sign(eventData.XboxDpadVerticalAxis) *
                            gameObject.transform.up * MoveSpeed * speed;
                if (Mathf.Abs(eventData.XboxDpadVerticalAxis) > 0.0001f)
                {
                    gameObject.transform.position += delta;
                }

                if (eventData.XboxB_Pressed)
                {
                    if (!_doubleClickPreventer.CanClick())
                    {
                        return;
                    }
                    gameObject.transform.position = _initialPosition;
                    gameObject.transform.rotation = _initialRotation;
                }

                HandleCustomAction(eventData);
            }
        }
        private void InitializeEventDatas()
        {
            inputEventData           = new InputEventData(EventSystem.current);
            sourceClickedEventData   = new InputClickedEventData(EventSystem.current);
            sourceStateEventData     = new SourceStateEventData(EventSystem.current);
            manipulationEventData    = new ManipulationEventData(EventSystem.current);
            navigationEventData      = new NavigationEventData(EventSystem.current);
            holdEventData            = new HoldEventData(EventSystem.current);
            pointerSpecificEventData = new PointerSpecificEventData(EventSystem.current);
            inputPositionEventData   = new InputPositionEventData(EventSystem.current);
            selectPressedEventData   = new SelectPressedEventData(EventSystem.current);
            sourceRotationEventData  = new SourceRotationEventData(EventSystem.current);
            sourcePositionEventData  = new SourcePositionEventData(EventSystem.current);
            xboxControllerEventData  = new XboxControllerEventData(EventSystem.current);
#if UNITY_WSA || UNITY_STANDALONE_WIN
            speechEventData    = new SpeechEventData(EventSystem.current);
            dictationEventData = new DictationEventData(EventSystem.current);
#endif
        }
예제 #13
0
        public override void OnXboxAxisUpdate(XboxControllerEventData eventData)
        {
            base.OnXboxAxisUpdate(eventData);
            newPosition = Vector3.zero;
            newRotation = Vector3.zero;

            newPosition.x += eventData.XboxLeftStickHorizontalAxis * movementSpeedMultiplier;
            newPosition.z += eventData.XboxLeftStickVerticalAxis * movementSpeedMultiplier;
            newPosition.y += eventData.XboxSharedTriggerAxis * movementSpeedMultiplier;

            transform.position += newPosition;

            newRotation.y += eventData.XboxRightStickHorizontalAxis * rotationSpeedMultiplier;

            transform.rotation *= Quaternion.Euler(newRotation);

            if (OnButton_Up(resetButton, eventData))
            {
                transform.position = initialPosition;
            }

            DebugText.text =
                string.Format(
                    "{19}\n" +
                    "LS Horizontal: {0:0.000} Vertical: {1:0.000}\n" +
                    "RS Horizontal: {2:0.000} Vertical: {3:0.000}\n" +
                    "DP Horizontal: {4:0.000} Vertical: {5:0.000}\n" +
                    "Left Trigger:  {6:0.000} Right Trigger: {7:0.000} Shared Trigger: {8:0.00}\n" +
                    "A: {9} B: {10} X: {11} Y: {12}\n" +
                    "LB: {13} RB: {14} " +
                    "LS: {15} RS: {16}\n" +
                    "View: {17} Menu: {18}\n",
                    eventData.XboxLeftStickHorizontalAxis, eventData.XboxLeftStickVerticalAxis,
                    eventData.XboxRightStickHorizontalAxis, eventData.XboxRightStickVerticalAxis,
                    eventData.XboxDpadHorizontalAxis, eventData.XboxDpadVerticalAxis,
                    eventData.XboxLeftTriggerAxis, eventData.XboxRightTriggerAxis, eventData.XboxSharedTriggerAxis,
                    eventData.XboxA_Pressed, eventData.XboxB_Pressed, eventData.XboxX_Pressed, eventData.XboxY_Pressed,
                    eventData.XboxLeftBumper_Pressed, eventData.XboxRightBumper_Pressed,
                    eventData.XboxLeftStick_Pressed, eventData.XboxRightStick_Pressed,
                    eventData.XboxView_Pressed, eventData.XboxMenu_Pressed,
                    GamePadName);
        }
    protected static bool OnButton_Pressed(XboxControllerMappingTypes buttonType, XboxControllerEventData eventData)
    {
        switch (buttonType)
        {
        case XboxControllerMappingTypes.None:
            return(false);

        case XboxControllerMappingTypes.XboxA:
            return(eventData.XboxA_Pressed);

        case XboxControllerMappingTypes.XboxB:
            return(eventData.XboxB_Pressed);

        case XboxControllerMappingTypes.XboxX:
            return(eventData.XboxX_Pressed);

        case XboxControllerMappingTypes.XboxY:
            return(eventData.XboxY_Pressed);

        case XboxControllerMappingTypes.XboxView:
            return(eventData.XboxView_Pressed);

        case XboxControllerMappingTypes.XboxMenu:
            return(eventData.XboxMenu_Pressed);

        case XboxControllerMappingTypes.XboxLeftBumper:
            return(eventData.XboxLeftBumper_Pressed);

        case XboxControllerMappingTypes.XboxRightBumper:
            return(eventData.XboxRightBumper_Pressed);

        case XboxControllerMappingTypes.XboxLeftStickClick:
            return(eventData.XboxLeftStick_Pressed);

        case XboxControllerMappingTypes.XboxRightStickClick:
            return(eventData.XboxRightStick_Pressed);

        default:
            throw new ArgumentOutOfRangeException("buttonType", buttonType, null);
        }
    }
        private static bool OnButton_Up(XboxControllerMappingTypes buttonType, XboxControllerEventData eventData)
        {
            switch (buttonType)
            {
            case XboxControllerMappingTypes.XboxA:
                return(eventData.XboxA_Up);

            case XboxControllerMappingTypes.XboxB:
                return(eventData.XboxB_Up);

            case XboxControllerMappingTypes.XboxX:
                return(eventData.XboxX_Up);

            case XboxControllerMappingTypes.XboxY:
                return(eventData.XboxY_Up);

            case XboxControllerMappingTypes.XboxView:
                return(eventData.XboxView_Up);

            case XboxControllerMappingTypes.XboxMenu:
                return(eventData.XboxMenu_Up);

            case XboxControllerMappingTypes.XboxLeftBumper:
                return(eventData.XboxLeftBumper_Up);

            case XboxControllerMappingTypes.XboxRightBumper:
                return(eventData.XboxRightBumper_Up);

            case XboxControllerMappingTypes.XboxLeftStickClick:
                return(eventData.XboxLeftStick_Up);

            case XboxControllerMappingTypes.XboxRightStickClick:
                return(eventData.XboxRightStick_Up);

            default:
                throw new ArgumentOutOfRangeException("buttonType", buttonType, null);
            }
        }
예제 #16
0
        public override void OnXboxInputUpdate(XboxControllerEventData eventData){
            if (string.IsNullOrEmpty(GamePadName)){
                Debug.LogFormat("Joystick {0} with id: \"{1}\" Connected", eventData.GamePadName, eventData.SourceId);
            }

            base.OnXboxInputUpdate(eventData);

            /*get information from xbox controller*/

            if(_session.IsConnected){
                if (eventData.XboxLeftStickHorizontalAxis != 0 || eventData.XboxLeftStickVerticalAxis != 0){
                    var motion = _session.GetService("ALMotion");
                    motion["moveTo"].Call(eventData.XboxLeftStickHorizontalAxis * move_scalefactor, eventData.XboxLeftStickVerticalAxis * (-1) * move_scalefactor, 0f);
                }
                if (eventData.XboxLeftBumper_Pressed){
                    var motion = _session.GetService("ALMotion");
                    motion["moveTo"].Call(0f, 0f, rotation_scalefactor);
                }
                else if (eventData.XboxRightBumper_Pressed){
                    var motion = _session.GetService("ALMotion");
                    motion["moveTo"].Call(0f, 0f, (-1) * rotation_scalefactor);
                }
                if (eventData.XboxB_Pressed){
                    if (Time.time - first_buttonpressed > timeBetweenbuttonpressed){
                        var motion = _session.GetService("ALMotion");
                        motion["setAngles"].Call("HeadYaw", angle, 0f);
                    }
                    first_buttonpressed = Time.time;
                }
                if (eventData.XboxX_Pressed){
                    if (Time.time - first_buttonpressed > timeBetweenbuttonpressed){
                        if (pepperIP == "192.168.10.51"){
                            _session.Close();
                            _session.Destroy();
                            pepperIP = "192.168.10.48"
                            _session = QiSession.Create(tcpPrefix + pepperIP + portSuffix);
                        }else{
                            _session.Close();
                            _session.Destroy();
                            pepperIP = "192.168.10.51"
                            _session = QiSession.Create(tcpPrefix + pepperIP + portSuffix);
                        } 
                    }
                    first_buttonpressed = Time.time;
                }
            
            //another robot (estimated)
            }else if(session_robot.isConnected){
                if (eventData.XboxLeftStickHorizontalAxis != 0 || eventData.XboxLeftStickVerticalAxis != 0){
                    CallRobotsAPI_move(eventData.XboxLeftStickHorizontalAxis * move_scalefactor_robot, eventData.XboxLeftStickVerticalAxis * (-1) * move_scalefactor_robot, 0f);
                }
                if (eventData.XboxLeftBumper_Pressed){
                    CallRobotsAPI_rotate(0f, 0f, rotation_scalefactor);
                }
                else if (eventData.XboxRightBumper_Pressed){
                    CallRobotsAPI_rotate(0f, 0f, (-1) * rotation_scalefactor);
                }
                if (eventData.XboxB_Pressed){
                    if (Time.time - first_buttonpressed > timeBetweenbuttonpressed){
                        CallRobotsAPI_rotate(0f, 0f, 0f);
                    }
                    first_buttonpressed = Time.time;
                }
                if (eventData.XboxX_Pressed){
                    if (Time.time - first_buttonpressed > timeBetweenbuttonpressed){
                        if (robotIP == "192.168.10.53"){
                            session_robot.Close();
                            session_robot.Destroy();
                            robotIP = "192.168.10.54"
                            session_robot = RobotSession.Create(tcpPrefix + robotIP + portSuffix);
                        }else{
                            session_robot.Close();
                            session_robot.Destroy();
                            robotIP = "192.168.10.53"
                            session_robot = RobotSession.Create(tcpPrefix + robotIP + portSuffix);
                        } 
                    }
                    first_buttonpressed = Time.time;
            }
        }
    }
예제 #17
0
    public override void OnXboxInputUpdate(XboxControllerEventData eventData)
    {
        GazeInputHandler gih = GazeInputHandler.Instance;

        /////////////////////
        // SELECTTION MODE //
        /////////////////////

        if (gih.isObjectSelected())
        {
            Vector3 v3 = new Vector3(eventData.XboxLeftStickHorizontalAxis, eventData.XboxSharedTriggerAxis,
                                     eventData.XboxLeftStickVerticalAxis);
            gih.manipulateObject(v3);
        }

        ///////////////////
        // Front Buttons //
        ///////////////////

        // select / grab object
        if (eventData.XboxA_Down)
        {
            if (!gih.isObjectSelected())
            {
                gih.selectObject();
            }
            else
            {
                gih.grabObject();
            }
        }

        if (gih.isObjectSelected())
        {
            // delete timer
            if (eventData.XboxB_Down)
            {
                deleteTimer = Time.time;
            }

            if (eventData.XboxB_Pressed)
            {
                if (Time.time - deleteTimer > maxTime)
                {
                    gih.deleteObject();
                }
                else
                {
                    gih.updateDeleteProgress((Time.time - deleteTimer) / maxTime);
                }
            }

            // drop object / delete object
            if (eventData.XboxB_Up)
            {
                gih.dropObject();
                deleteTimer = float.PositiveInfinity;
            }
        }

        // addiotional info
        if (eventData.XboxY_Down)
        {
            gih.applyTexture();
        }

        // Open menu
        if (eventData.XboxX_Down)
        {
            gih.repositionCanvas(uiCanvas);
        }

        ///////////////
        // Triggers //
        //////////////

        if (eventData.XboxSharedTriggerAxis != 0)
        {
        }

        // Move Object further away or closer
//        if (eventData.XboxRightTriggerAxis != 0.0)
//        {
//            gih.pushbackObj(eventData.XboxRightTriggerAxis);
//        }
//
//        if (eventData.XboxLeftTriggerAxis != 0.0)
//        {
//
//            gih.pullbackObj(eventData.XboxLeftTriggerAxis);
//        }

        ////////////////
        // Left Stick //
        ////////////////

        //ROTATE STUFF
        if (eventData.XboxLeftStickVerticalAxis != 0)
        {
            gih.rotateX(eventData.XboxLeftStickVerticalAxis);
        }
        else
        {
            gih.rotateX(0f);
        }
        if (eventData.XboxLeftStickHorizontalAxis != 0)
        {
            gih.rotateY(eventData.XboxLeftStickHorizontalAxis * -1);
        }
        else
        {
            gih.rotateY(0f);
        }

        /////////////////
        // Right Stick //
        /////////////////

        if (eventData.XboxRightStickVerticalAxis != 0)
        {
        }
        else
        {
        }
        if (eventData.XboxRightStickHorizontalAxis != 0)
        {
        }
        else
        {
        }

        //////////////
        // DPAD HACK//
        //////////////
#if !UNITY_EDITOR
        // right
        if (eventData.XboxRightTriggerAxis == 0 && !dPadPressed)
        {
            if (gih.isObjectSelected())
            {
                Debug.Log("DPAD right");
                showInfo = !showInfo;
                GameObject.Find("ObjectUi").transform.Find("InfoView").gameObject.SetActive(showInfo);

                dPadPressed = true;
            }
        }

        // left
        else if (eventData.XboxRightTriggerAxis == 1 && !dPadPressed)
        {
            Debug.Log("DPAD left");
            dPadPressed = true;
            QRCodeScript qrscript = GameObject.Find("QRZXingObject").GetComponent <QRCodeScript>();
            qrscript.OnScan();
            Debug.Log("Scan started");
        }

        // up
        else if (eventData.XboxRightTriggerAxis < 0 && eventData.XboxRightTriggerAxis > -1 && !dPadPressed)
        {
            Debug.Log("DPAD up");
            dPadPressed = true;
        }

        // down
        else if (eventData.XboxRightTriggerAxis > 0 && eventData.XboxRightTriggerAxis < 1 && !dPadPressed)
        {
            Debug.Log("DPAD down");
            dPadPressed = true;
            gih.applyTexture();
        }
        else
        {
            dPadPressed = false;
        }
#endif

        /////////////
        // Bumpers //
        /////////////
        if (eventData.XboxLeftBumper_Down)
        {
            gih.changeSelectMode(-1);
        }

        if (eventData.XboxRightBumper_Down)
        {
            gih.changeSelectMode(1);
        }


        /* OLD Settings
         * if (eventData.XboxLeftBumper_Pressed)
         * {
         *  gih.rotateZ(1f);
         * }
         *
         * if (eventData.XboxRightBumper_Pressed)
         * {
         *  gih.rotateZ(-1f);
         * }
         *
         * if (eventData.XboxLeftBumper_Pressed == false && eventData.XboxRightBumper_Pressed == false)
         * {
         *  gih.rotateZ(0f);
         * }
         */
        ////////////////////
        // Start / Select //
        ///////////////////

        if (eventData.XboxMenu_Down)
        {
        }

        if (eventData.XboxView_Down)
        {
            Debug.Log("Sel");
            gih.repositionDebugWindow(debugWindow);
        }
    }
예제 #18
0
    // todo -> eventuellement rajouter dans un autre fichier le controle de l'axisviewer si on appuie sur une touche
    public override void OnXboxInputUpdate(XboxControllerEventData eventData)
    {
        if (!UseJoystick)
        {
            Debug.Log("Joystick use not enabled");
            //return;
        }

        if (string.IsNullOrEmpty(GamePadName))
        {
            Debug.LogFormat("Joystick {0} with id: \"{1}\" Connected", eventData.GamePadName, eventData.SourceId);
        }

        base.OnXboxInputUpdate(eventData);

        // Si on appuie sur start -> affiche ou cache le menu
        if (eventData.XboxMenu_Pressed)
        {
            Debug.Log("Menu is pressed");
            UITriggers.Instance.ShowHideMenu();
        }

        newPosition = Vector3.zero;
        newScale    = transform.localScale;

        // position
        newPosition.x      += eventData.XboxLeftStickHorizontalAxis * movementSpeedMultiplier;
        newPosition.y      += eventData.XboxLeftStickVerticalAxis * movementSpeedMultiplier;
        newPosition.z      += eventData.XboxSharedTriggerAxis * movementSpeedMultiplier;
        transform.position += newPosition;

        // Axe X
        transform.RotateAround(transform.position, Vector3.right, eventData.XboxRightStickVerticalAxis * rotationSpeedMultiplier);

        // Axe Y
        transform.RotateAround(transform.position, Vector3.up, eventData.XboxRightStickHorizontalAxis * rotationSpeedMultiplier);


        // scale
        if (eventData.XboxLeftBumper_Down)
        {
            Debug.Log("Left bumper down");
            newScale.x -= 1 * scaleSpeedMultiplier;
            newScale.y -= 1 * scaleSpeedMultiplier;
            newScale.z -= 1 * scaleSpeedMultiplier;
        }
        if (eventData.XboxRightBumper_Down)
        {
            Debug.Log("Right bumper down");
            newScale.x += 1 * scaleSpeedMultiplier;
            newScale.y += 1 * scaleSpeedMultiplier;
            newScale.z += 1 * scaleSpeedMultiplier;
        }

        transform.localScale = newScale;

        if (XboxControllerMapping.GetButton_Up(resetButton, eventData))
        {
            Debug.Log("Reset button up");
            ResetObjet();
        }
    }
 public virtual void OnXboxAxisUpdate(XboxControllerEventData eventData)
 {
 }
 protected virtual void HandleCustomAction(XboxControllerEventData eventData)
 {
 }
예제 #21
0
 public void OnXboxAxisUpdate(XboxControllerEventData eventData)
 {
     throw new System.NotImplementedException();
 }