Aqui vai uma maneira simples de implementar o controle MOGA ou SteelSeries no seu jogo para BlackBerry.
Lembrando que o controle que utilizei foi o MOGA Pro, e ao utilizar outros controles, não obtive resultados satisfatórios (as funções dos botões ficaram “embaralhadas”).
Primeiramente, vou explicar como conectar o controle ao seu aparelho, se você já sabe fazer isso, pode pular este primeiro ítem e ir direto ao segundo (Implementação):
Conectando o MOGA ao seu BlackBerry
1- Ligue a chave do controle na posição “B”, para Blackberry (como no exemplo abaixo):

2- No seu aparelho BlackBerry:
– Vá em Definições -> Conexões de Rede -> Bluetooth
– Ative o Bluetooth.
– Aguarde até que apareça o “Moga Pro HID” na lista de aparelhos bluetooth (como na imagem abaixo)

– Clique no “Moga Pro HID” para conectar seu Blackberry ao gamepad e aguarde o nome do controle ficar verde
– Pronto! Seu Blackberry está conectado ao controle.
Implementação no código
Antes do código, uma observação: os botões L2 e R2 do controle NÃO funcionam no Blackberry
Para começar seu código, recomendo utilizar esta função do Unity logo no começo:
Input.GetJoystickNames()
Esta função retorna um array de strings com os nomes dos controles conectados. Eu utilizo ela para detectar se há algum controle conectado, como no exemplo abaixo:
void Awake () { if ( Input.GetJoystickNames() == null ) print( "Nenhum controle conectado" ); }
E agora, o mais importante… um código detectando o Input de todos os botões do controle e dando Print
void Update () { if ( Input.GetKey(KeyCode.Joystick1Button2) ) // BOTAO X DO MOGA print ("Pressionou o botao X"); if( Input.GetKey(KeyCode.Joystick1Button3) ) // BOTAO Y DO MOGA print ("Pressionou o botao Y"); if( Input.GetKey(KeyCode.Joystick1Button0) ) // BOTAO A DO MOGA print ("Pressionou o botao A"); if( Input.GetKey(KeyCode.Joystick1Button1) ) // BOTAO B DO MOGA print ("Pressionou o botao B"); if( Input.GetKey(KeyCode.Joystick1Button4) ) // BOTAO L1 DO MOGA print ("Pressionou o botao L1"); if( Input.GetKey(KeyCode.Joystick1Button5) ) // BOTAO R1 DO MOGA print ("Pressionou o botao R1"); if( Input.GetKey(KeyCode.Joystick1Button6) ) // BOTAO SELECT DO MOGA print ("Pressionou o botao SELECT"); if( Input.GetKey(KeyCode.Joystick1Button7) ) // BOTAO START DO MOGA print ("Pressionou o botao START"); if( Input.GetAxisRaw("6th axis") > 0 ) // EIXO HORIZONTAL DO DIRECIONAL DIGITAL DO MOGA print ("Pressionou o Direcional Digital para direita"); if( Input.GetAxisRaw("7th axis") > 0 ) // EIXO VERTICAL DO DIRECIONAL DIGITAL DO MOGA print ("Pressionou o Direcional Digital para cima"); if( Input.GetAxisRaw("4th axis") < 0 ) // EIXO HORIZONTAL DO DIRECIONAL ANALOGICO DO MOGA print ("Moveu o Direcional Analogico para esquerda"); if( Input.GetAxisRaw("5th axis") < 0 ) // EIXO VERTICAL DO DIRECIONAL ANALOGICO DO MOGA print ("Moveu o Direcional Analogico para baixo"); }
Lembrando que os direcionais não vão funcionar se você não criar estes inputs “4th axis”, “5th axis”, “6th axis” e “7th axis” na lista de Inputs do seu projeto.
Para isso, siga o exemplo abaixo
Configurando Input dos Direcionais
-No Unity, vá em: Edit -> Project Settings -> Input
-Crie um input com o nome de cada eixo utilizado no código acima (“4th axis”, “5th axis”, “6th axis” e “7th axis”)
-Configure cada input igual ao exemplo abaixo:

Lembre-se que o campo “Axis” é definido de acordo com o eixo que você quer mexer (não vá colocar “6th axis” nos 4 inputs).
Com a lista de inputs configurada e os códigos “na mão”, de agora em diante, é com você 😉