刚做完一个Unity3d搭配罗技G29开发的赛车游戏,对于罗技最开始并不熟悉,在网上能找的资料也非常少,特别是G29交互这一块,数据不好检测,我这里把逻辑比较难检测的几个地方做一个分享!
一:踏板数据获取
1.加速器
对应Unity3d虚拟轴:
获取方式:Input.GetAxisRaw("youmen")
2.刹车
获取方式:Input.GetAxisRaw("sache")
二:方向盘数据获取获取
1,方向盘转向
获取方式:Input.GetAxis("Horizontal")
2,按钮获取,由于Unity3d的原因,只能支持按钮排号20以下(包括20)的按钮,这从KeyCode中也能看得出来,
所以在按钮排号20以内的,可以有两种方式获取
方式一:比较简单 直接代码,不需要设置InputManager
Input.GetKeyDown(KeyCode.JoystickButton0)
方式二:设置InputManager
代码: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数据交互!