--- title: "Entrada do jogador (PlayerInput)" version: snapshot-2026-10-28 engineGeneration: astra-current language: C# status: source-reviewed reviewedAt: 2026-10-26 appRelease: "0.4.0-preview.20261028" runtimeVerified: false platformEvidence: [] url: https://astraengine.com.br/guia/scripts/entrada-do-jogador/ --- # Entrada do jogador (PlayerInput) Transforme as ações do mapa de entrada em eventos: sem código pela Conexão de evento ou em C# com Performed e Canceled. > **Validado no aparelho** · APK 0.4.0 · Mirar segurada e solta pelo toque no POCO F7 em C# e em Flow (26/10) O componente **Entrada do jogador** faz o papel do Player Input da Unity em modo *Invoke Unity Events*: cada ação do mapa de entrada vira um evento **executada** (apertou) e **cancelada** (soltou) neste objeto. ## 1. A ação no mapa **☰** › **Configurações do projeto** › **Entrada** › **+ Ação**: nome `Mirar`, Fonte **Botão touch**. No Play aparece o botão **Mirar** na tela. ## 2. O componente No objeto do jogador: **Adicionar componente** › **Entrada do jogador** (ou **+** › Gameplay). Em **Ações**, marque as ações que este objeto observa. ## 3a. Sem código **Conexão de evento** no mesmo objeto: | Campo | Valor | | --- | --- | | Evento | Entrada: ação executada | | Ação (filtro) | Mirar | | Ação | Chamar método | | Método | Volume: definir peso | | Valor | 1 | | Receptor | o Volume de mira | Uma segunda conexão com **Entrada: ação cancelada** e Valor 0 devolve o peso. ## 3b. Em C# ```csharp using Astra; using Astra.Components; [ComponentId("meujogo.ouve-mirar")] public sealed class OuveMirar : Behavior { [PropertyId("indice_mirar")] public int IndiceMirar = 4; // posição da ação no mapa, a partir de 1 public override void Start() { if (Object.GetComponent() is not { } entrada) return; entrada.Performed(this, acao => { if (acao == IndiceMirar) Scene.Log(ObjectId, "Mirando"); }); entrada.Canceled(this, acao => { if (acao == IndiceMirar) Scene.Log(ObjectId, "Mira solta"); }); } } ``` O evento entrega o **índice** da ação no mapa (a partir de 1), só no quadro em que ela é apertada ou solta. Para saber se está segurada a cada quadro, continue usando `Input.Pressed("Mirar")`. ## Limites Até 32 ações observadas; o índice depende da ordem no mapa; troca de esquema de controle e vários jogadores locais não existem.