Suporte aos controles MOGA Pro para BlackBerry (Unity)

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):

moga

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)

BBbluetooth

– 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:

MOGAinput

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ê 😉

Publicidade

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s