Recapitulação: troca de entrada
Parte da seção Criando jogos de verdade do Journey de Unity da Coddy. Lição 47 de 56.
Desafio
MédioEsta varinha de bolhas foi escrita para a classe antiga Input. Ela funciona em um projeto configurado como Both, mas este projeto está configurado como um novo projeto do Unity 6 (Active Input Handling: Input System Package): pressione Play e a primeira chamada a Input gera uma InvalidOperationException. Faça a migração para o Input System, mantendo tudo o que ela faz:
- As setas ou WASD movem a varinha pelo gramado a
speedunidades por segundo, sem acelerar na diagonal. - Pressionar Jump cria uma bolha 1.5 unidades acima da varinha. Enquanto Jump estiver pressionado, a bolha cresce
growRatepor segundo, atémaxSize. Ao soltar, registra o tamanho, como emBubble: 0.8. - Um clique com o botão esquerdo estoura todas as bolhas e registra quantas, como em
Popped 3.
Use as ações Move e Jump do projeto e Mouse.current, e não deixe nenhuma chamada a Input. no script. Pressione Play e experimente; depois, pressione Check.
Experimente você mesmo
using UnityEngine;
public class Wand : MonoBehaviour
{
public float speed = 4f;
public float growRate = 1f;
public float maxSize = 1.5f;
public GameObject bubblePrefab;
private Transform bubble;
void Update()
{
Vector3 move = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical"));
transform.position += move.normalized * speed * Time.deltaTime;
if (Input.GetButtonDown("Jump"))
{
bubble = Instantiate(bubblePrefab, transform.position + Vector3.up * 1.5f, Quaternion.identity).transform;
}
if (Input.GetButton("Jump") && bubble != null)
{
float size = Mathf.Min(bubble.localScale.x + growRate * Time.deltaTime, maxSize);
bubble.localScale = Vector3.one * size;
}
if (Input.GetButtonUp("Jump") && bubble != null)
{
Debug.Log("Bubble: " + bubble.localScale.x.ToString("F1"));
bubble = null;
}
if (Input.GetMouseButtonDown(0))
{
GameObject[] bubbles = GameObject.FindGameObjectsWithTag("Bubble");
foreach (GameObject b in bubbles) Destroy(b);
Debug.Log("Popped " + bubbles.Length);
}
}
}
Todas as lições de Criando jogos de verdade
1Texto na tela
Canvas e textoExiba a pontuaçãoFormate númerosUm cronômetro regressivoRevisão: velocímetro4Cenas e Fases
Carregar uma CenaReiniciar a FasePróxima FaseManter entre CenasRevisão: Seleção de Fases10Projeto: Jogo de Plataforma 3D
O PercursoPlataformas Móveis2Botões e telas
Botões e onClickLambdasConectando no InspectorPainéis ligados e desligadosBarras de vidaRevisão: Loja de melhorias5Salvando com PlayerPrefs
Salvar um númeroCarregar com um valor padrãoRecordeSalvar configuraçõesRevisão: Moedas no banco3O Gerenciador do Jogo
Um Script Controla o JogoO SingletonEstados do JogoAlternando o EstadoRevisão: Gerenciador de Rodadas6Projeto: Corredor Infinito
Três FaixasObstáculos à Frente9O Novo Sistema de Entrada
Dois sistemas de entradaTeclado e mousePressionado neste quadroAções de entradaRecapitulação: troca de entrada