Como usar o controlador Xbox no Unity

Unity Engine, uma plataforma robusta para desenvolvimento de jogos, oferece ferramentas abrangentes para integração de vários dispositivos de entrada. Entre os dispositivos amplamente utilizados, o controle Xbox se destaca pelo design ergonômico e amplas funcionalidades. Este tutorial irá elucidar a integração de um controlador Xbox em projetos Unity, detalhando o processo de acesso aos dados de entrada e respondendo a dúvidas comuns relacionadas a esta integração.

1. Configurando o Ambiente de Desenvolvimento

  • Certifique-se de que a versão mais recente do Unity esteja instalada.
  • Conecte o controlador Xbox ao computador. Certifique-se de que os drivers estejam atualizados e que o sistema reconheça o controlador.

2. Acessando o Gerenciador de Entrada

Para modificar e visualizar as entradas atuais:

  • Abra Unity.
  • Navegue para 'Edit' -> 'Project Settings' -> 'Input Manager'.
  • No Gerenciador de entrada, vários eixos e botões são listados. Para controladores de Xbox, certos eixos e botões padrão como "Horizontal" e "Vertical" correspondem aos movimentos do joystick.

3. Configurando as entradas do controlador Xbox

Para os fins deste tutorial, vamos configurar o botão 'A' e o botão esquerdo 'Joystick'.

  • Expanda 'Axes' no Gerenciador de entrada.
  • Para adicionar uma nova entrada, clique com o botão direito em qualquer eixo existente e duplique-o. Renomeie para "A_Button".

Configuração A_Button:

  • Defina 'Type' como 'Joystick Axis'.
  • Escolha o 'Axis' correto para o botão A. Para controladores do Xbox, normalmente é o eixo 0.
  • Para 'Joy Num', escolha 'Get Motion from all Joysticks', a menos que haja um joystick específico destinado ao uso.

Configuração do joystick esquerdo:

  • Duplique outro eixo e renomeie-o "JoystickHorizontal" para o movimento horizontal. Defina 'Type' como 'Joystick Axis'. Defina 'Axis' como 'X axis'.
  • Duplique mais uma vez e renomeie-o "JoystickVertical" para o movimento vertical. Defina 'Type' como 'Joystick Axis'. Defina 'Axis' como 'Y axis'.

4. Acessando a entrada do controlador em scripts

  • Para aproveitar a entrada do controlador Xbox em scripts Unity, empregue a classe 'Input'.
using UnityEngine;

public class XboxControllerInput : MonoBehaviour
{
    void Update()
    {
        float horizontal = Input.GetAxis("JoystickHorizontal");
        float vertical = Input.GetAxis("JoystickVertical");
        bool aButtonPressed = Input.GetButtonDown("A_Button");

        // Implement desired actions based on the input values
    }
}
  • Anexe este script a qualquer GameObject relevante para recuperar valores de entrada e manipulá-los conforme necessário.

Respostas para perguntas comuns:

  1. Por que as entradas do controle do Xbox não são reconhecidas em Unity?: o controle do Xbox pode não estar conectado corretamente ou os drivers podem não estar atualizados. Certifique-se de que o sistema reconheça o controlador. Além disso, verifique se as configurações do Gerenciador de entrada correspondem ao número e eixo corretos do joystick.
  2. Como diferenciar entre vários controladores Xbox conectados?: No Input Manager, 'Joy Num' permite a seleção de um número de joystick específico. Atribua a cada controlador do Xbox um número exclusivo para diferenciá-los.
  3. Podem ser feitos mapeamentos de botões personalizados para o controlador do Xbox em Unity?: Com certeza. O Input Manager facilita mapeamentos de botões personalizados. Basta duplicar um eixo/botão existente, renomeá-lo e ajustar as configurações de acordo.

Conclusão

A integração do controle Xbox em projetos Unity enriquece as experiências de jogo, proporcionando aos jogadores controles familiares e intuitivos. Ao compreender o Input Manager e a classe Input, uma ampla gama de funcionalidades do controlador pode ser perfeitamente incorporada em qualquer Unity jogo.

Artigos sugeridos
Como usar o novo sistema de água HDRP no Unity
Como configurar o controlador de joystick para movimento no Unity
Principais ativos do Unity na Asset Store
Coleta de moedas 2D no Unity
Script para criar um interruptor de luz no Unity
Unity Como gerar objetos com um clique do mouse
Editor de mapa de altura de terreno no jogo para Unity