Unity3d 与罗技G29交互

刚做完一个Unity3d搭配罗技G29开发的赛车游戏,对于罗技最开始并不熟悉,在网上能找的资料也非常少,特别是G29交互这一块,数据不好检测,我这里把逻辑比较难检测的几个地方做一个分享!
一:踏板数据获取
Unity3d 与罗技G29交互_第1张图片
1.加速器
对应Unity3d虚拟轴:
Unity3d 与罗技G29交互_第2张图片
获取方式:Input.GetAxisRaw("youmen")
2.刹车
Unity3d 与罗技G29交互_第3张图片
获取方式:Input.GetAxisRaw("sache")
二:方向盘数据获取获取
Unity3d 与罗技G29交互_第4张图片
1,方向盘转向
获取方式:Input.GetAxis("Horizontal")
2,按钮获取,由于Unity3d的原因,只能支持按钮排号20以下(包括20)的按钮,这从KeyCode中也能看得出来,
Unity3d 与罗技G29交互_第5张图片
所以在按钮排号20以内的,可以有两种方式获取
方式一:比较简单 直接代码,不需要设置InputManager
Input.GetKeyDown(KeyCode.JoystickButton0)
方式二:设置InputManager
Unity3d 与罗技G29交互_第6张图片
代码:Input.GetButtonDown(“Button3”)
20以上从21开始,获取方式比较复杂需要LogitechSteeringWheel.DLL
获取路径:http://download.csdn.net/download/wuyf88/9968364
代码如下:

if (LogitechGSDK.LogiUpdate() && LogitechGSDK.LogiIsConnected(0))
        {
            LogitechGSDK.DIJOYSTATE2ENGINES wheel;
            wheel = LogitechGSDK.LogiGetStateUnity(0);
            for (int i = 0; i < 128; i++)
            {
                if (wheel.rgbButtons[i] == 128)
                {
                    switch (i)
                    {
                        case 20:
                            Button20Pressed();
                            break;
                        case 21:
                            Button21Pressed();
                            break;
                        case 22:
                            Button22Pressed();
                            break;
                        case 23:
                            Button23Pressed();
                            break;
                        case 24:
                            Button24Pressed();
                            break;
                    }

                }

            }

到这里,可以拿到所有罗技G29数据交互!

你可能感兴趣的:(Unity3d打包,罗技G29)