Pressionado, Mantido, Liberado
Parte da seção Noções básicas de scripting no Unity do Journey de Unity da Coddy. Lição 12 de 67.
O Unity pode informar três coisas diferentes sobre uma tecla, e cada uma é verificada em Update():
Input.GetKeyDown(KeyCode.Space): a tecla Space foi pressionada neste quadro? O resultado é true em um quadro por pressionamento.Input.GetKey(KeyCode.Space): a tecla Space está pressionada agora? O resultado é true em todos os quadros enquanto Space estiver pressionada.Input.GetKeyUp(KeyCode.Space): a tecla Space foi solta neste quadro? O resultado é true em um quadro, quando a tecla é solta.
Mantenha Space pressionada por meio segundo a 60 quadros por segundo, e GetKey será true em 30 quadros, GetKeyDown no primeiro deles e GetKeyUp no quadro após o último. Um canhão que dispara uma vez por pressionamento verifica GetKeyDown; com GetKey, um pressionamento dispararia 30 tiros:
public int shots = 0;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
shots++;
Debug.Log("Shots fired: " + shots);
}
}GetKeyUp serve para o que acontece quando o jogador solta a tecla, como o fim de uma corrida. As três respondem apenas para o quadro atual, por isso devem ficar em Update(): ele é executado a cada quadro, enquanto Start() é executado uma vez e perderia quase todos os pressionamentos.
Desafio
FácilO estilingue carrega enquanto você mantém Espaço pressionado: charge aumenta em 1 a cada segundo em que Espaço fica pressionado e não aumenta enquanto não está. Quando você soltar Espaço, registre Charge: seguido da carga (por exemplo, Charge: 1.5) e, em seguida, defina charge novamente como 0 para o próximo disparo.
Pressione Jogar, mantenha Espaço pressionado e solte-o; observe o Console. Em seguida, pressione Verificar.
Experimente você mesmo
using UnityEngine;
public class Slingshot : MonoBehaviour
{
float charge = 0f;
void Update()
{
// Enquanto Space estiver pressionada: charge aumenta em 1 a cada segundo.
// Quando Space for solta: registre charge no log e depois redefina seu valor para 0.
}
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Noções básicas de scripting no Unity
1Seu primeiro script
Olá, UnityPosicione o cuboMova a cada quadroGire a cada segundoConduza com as teclasRecapitulando: dirija o cubo4Vetores
Adicionando vetoresDireçõesEspaço local e espaço do mundoVelocidade diagonalDistância entre objetosVector3 é uma structRevisão: piloto de drone7Projeto: Pegue a Estrela
O ApanhadorUma Estrela Cadente10O ciclo de vida dos scripts
Awake e StartUpdate e LateUpdateOnEnable e OnDisableA ordem do ciclo de vidaRevisão: registrador do ciclo de vida5Transformações e Hierarquia
Pais e FilhosEscalaObserve as CoisasMova-se em Direção a um PontoRevisão: Lua em Órbita6GameObjects e Componentes
Referências no InspectorObter um ComponenteComponentes AusentesAdicionar um ComponenteRequireComponentMostrar e OcultarRevisão: Interruptor de Luz