// Update is called once per frame
 void Update()
 {
     if (LogitechGSDK.LogiUpdate() && LogitechGSDK.LogiIsConnected(0))
     {
         LogitechGSDK.DIJOYSTATE2ENGINES rec;
         rec      = LogitechGSDK.LogiGetStateUnity(0);
         xAxes    = rec.lX / 32769f;
         gasInput = rec.lY;
     }
     else
     {
         print("Nicht verbunden.");
     }
 }
Ejemplo n.º 2
0
    // Update is called once per frame
    void Update()
    {
        if (LogitechGSDK.LogiUpdate() && LogitechGSDK.LogiIsConnected(0))
        {
            actualState = "Steering wheel current state : \n\n";
            LogitechGSDK.DIJOYSTATE2ENGINES rec;
            rec          = LogitechGSDK.LogiGetStateUnity(0);
            actualState += "x-axis position :" + rec.lX + "\n";

            float actualState_450 = rec.lX * 0.01373f;
            Debug.Log("actualState_450:" + actualState_450);

            LogitchSteelRotation = actualState_450;

            LogitchGasRotation   = MapValue(32767, -32767, 0, 25, rec.lY);
            LogitchBreakRotation = MapValue(32767, -32767, 0, 25, rec.lRz);
            LogitchCluthRotation = MapValue(32767, -32767, 0, 25, rec.rglSlider[0]);

            //Button status :
            string buttonStatus = "Button pressed : ";
            for (int i = 0; i < 128; i++)
            {
                if (rec.rgbButtons[i] == 128)
                {
                    buttonStatus += "Button " + i + " pressed\n";
                    Debug.Log(" buttonStatus: " + buttonStatus);
                }
                if (rec.rgbButtons[3] == 128)
                {
                    ForkUp = true;
                }
                else if (rec.rgbButtons[3] != 128)
                {
                    ForkUp = false;
                }

                if (rec.rgbButtons[0] == 128)
                {
                    ForkDown = true;
                }
                else if (rec.rgbButtons[0] != 128)
                {
                    ForkDown = false;
                }

                if (rec.rgbButtons[1] == 128)
                {
                    MastTiltForwards = true;
                }
                else if (rec.rgbButtons[1] != 128)
                {
                    MastTiltForwards = false;
                }

                if (rec.rgbButtons[2] == 128)
                {
                    MastTiltBackwards = true;
                }
                else if (rec.rgbButtons[2] != 128)
                {
                    MastTiltBackwards = false;
                }


                if (rec.rgbButtons[14] == 128)
                {
                    FrontMove = true;
                }
                else if (rec.rgbButtons[14] != 128)
                {
                    FrontMove = false;
                }


                if (rec.rgbButtons[15] == 128)
                {
                    BackMove = true;
                }
                else if (rec.rgbButtons[15] != 128)
                {
                    BackMove = false;
                }
            }
        }


        //Spring Force -> S
        if (Input.GetKeyUp(KeyCode.S))
        {
            if (LogitechGSDK.LogiIsPlaying(0, LogitechGSDK.LOGI_FORCE_SPRING))
            {
                LogitechGSDK.LogiStopSpringForce(0);
                Debug.Log("A");
            }
            else
            {
                LogitechGSDK.LogiPlaySpringForce(0, 0, 50, 50);
                Debug.Log("B");
            }
        }
    }
Ejemplo n.º 3
0
    void ProcessInput()
    {
        //Logitech Steering wheel car input

        if (LogitechGSDK.LogiUpdate() && LogitechGSDK.LogiIsConnected(0))
        {
            StringBuilder deviceName = new StringBuilder(256);
            LogitechGSDK.LogiGetFriendlyProductName(0, deviceName, 256);
            propertiesEdit  = "Current Controller : " + deviceName + "\n";
            propertiesEdit += "Current controller properties : \n\n";
            LogitechGSDK.LogiControllerPropertiesData actualProperties = new LogitechGSDK.LogiControllerPropertiesData();
            LogitechGSDK.LogiGetCurrentControllerProperties(0, ref actualProperties);



            LogitechGSDK.DIJOYSTATE2ENGINES rec;
            rec = LogitechGSDK.LogiGetStateUnity(0);

            float xaxis = (float)rec.lX;
            steeringWheel = xaxis / 32000.0f;
            gasPedal      = Mathf.InverseLerp(32000, -32000, rec.lY);
            brakePedal    = Mathf.InverseLerp(32000, -32000, rec.lRz);



            for (int i = 0; i < 128; i++)
            {
                switch (i)
                {
                case 1:
                    break;

                case 2:
                    break;

                case 3:
                    break;

                case 4:
                    break;

                case 5:
                    break;

                case 6:
                    break;

                case 7:
                    break;

                case 8:
                    break;

                case 9:
                    break;

                case 10:
                    break;

                case 11:
                    break;

                case 12:
                    if (rec.rgbButtons[i] == 128)
                    {
                        if (gearUpReleased)
                        {
                            gearUpReleased = false;
                            gearUp         = true;
                        }
                    }
                    else if (rec.rgbButtons[i] != 128)
                    {
                        gearUpReleased = true;
                    }
                    break;

                case 13:
                    if (rec.rgbButtons[i] == 128)
                    {
                        if (gearDownReleased)
                        {
                            gearDownReleased = false;
                            gearDown         = true;
                        }
                    }
                    else if (rec.rgbButtons[i] != 128)
                    {
                        gearDownReleased = true;
                    }
                    break;

                case 14:     //start engine
                    if (rec.rgbButtons[i] == 128)
                    {
                        startEngine = true;
                    }
                    break;
                }
            }
        }

#if UNITY_EDITOR //Mouse and keyboard input
        float turningRate = 1f;

        if (!LogitechGSDK.LogiIsConnected(0))
        {
            if (Input.GetKeyDown(KeyCode.W))
            {
                gasPedal = 1f;
            }

            if (Input.GetKeyUp(KeyCode.W))
            {
                gasPedal = 0f;
            }


            if (Input.GetKeyDown(KeyCode.S))
            {
                brakePedal = 1f;
            }

            if (Input.GetKeyUp(KeyCode.S))
            {
                brakePedal = 0f;
            }

            if (Input.GetKey(KeyCode.A))
            {
                if (steeringWheel > -1)
                {
                    steeringWheel -= turningRate * Time.deltaTime;
                }
            }
            if (Input.GetKey(KeyCode.D))
            {
                if (steeringWheel < 1)
                {
                    steeringWheel += turningRate * Time.deltaTime;
                }
            }


            if (!Input.GetKey(KeyCode.A) && !Input.GetKey(KeyCode.D))
            {
                steeringWheel = 0;
            }



            if (Input.GetKeyDown(KeyCode.UpArrow))
            {
                gearUp = true;
            }

            if (Input.GetKeyDown(KeyCode.DownArrow))
            {
                gearDown = true;
            }

            if (Input.GetKeyDown(KeyCode.K))
            {
                startEngine = true;
            }



            if (Input.GetKeyDown(KeyCode.Q))
            {
                blinkerLeft = true;
            }

            if (Input.GetKeyDown(KeyCode.E))
            {
                blinkerRight = true;
            }

            if (Input.GetKeyDown(KeyCode.X))
            {
                longLights = true;
            }


            if (Input.GetKeyDown(KeyCode.Z))
            {
                lightsModeLeft = true;
            }

            if (Input.GetKeyDown(KeyCode.C))
            {
                lightsModeRight = true;
            }
        }
#endif
    }