我正在构建一个VR移动游戏,我通过PS3控制器控制这个游戏,控制器在所有按钮和轴的Unity编辑器中都能很好地工作。当我用Android手机连接控制器时,所有按钮都工作,轴也是。 当我在Android中仅使用轴工作按钮构建游戏时出现的问题并非如此。 虽然我多次更改输入管理器设置,但它也没有做任何事情。并做了几件事:
这行代码获取轴值:
float steering = CrossPlatformInputManager.GetAxis("Horizontal");
所以我试图从按钮获取值并命名为虚拟按钮 " joystickButton2"像这样:
bool speed = CrossPlatformInputManager.GetButton("joystickButton2");
它也不起作用。
我用常规CrossPlatformInputManager
替换Input
班级
class和它类似于CrossPlatformInputManager
类。
bool speed = Input.GetButton("joystickButton2");
我试图通过GetKey
函数获取密钥 -
bool speed = Input.GetKey (KeyCode.joystickbutton2);
也没有发生任何事情。我尝试过很多东西和几件事,但仍然只有轴工作和按钮没有。
答案 0 :(得分:0)
我想我找到了解决方案。
问题是Android以经常的方式从PS3控制器读取输入,就像X按钮是joystickButton14
所以我已经为所有按钮做了一个简单的循环,并在Android上显示游戏本身的结果当我连接Controller时,我确切知道joystickButton
的数量。
public Text ButtonNumber;
void Update (){
for (int i = 0 ; i =< 100 ; i++ ){
string JoyStick = "joystickButton"+ i.ToString();
if (input.GetKey(KeyCode.JoyStick)){
ButtonNubmber.text = i.ToString();
}}}
我希望能帮助别人。