O Pegador
Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 50 de 85.
Este capítulo desenvolve um jogo pequeno, Catch the Star, com um recurso por lição: uma estrela cai, você desliza um apanhador para a esquerda e para a direita sob ela, cada captura vale pontos e faz a próxima estrela cair mais rápido, e três erros encerram o jogo. Tudo isso fica em um único script, Catcher, no apanhador. O primeiro recurso é o movimento: o apanhador desliza com as teclas de seta e nunca sai do chão.
Manter um número dentro de limites é a função de Mathf.Clamp(value, min, max). Ele retorna min quando o valor é menor que min, max quando é maior que max e, caso contrário, o próprio valor. Esta câmera segue o jogador enquanto ele sobe uma torre, mas sua altura permanece entre 2 e 12:
[SerializeField] private Transform player;
void Update()
{
float y = Mathf.Clamp(player.position.y, 2f, 12f);
transform.position = new Vector3(transform.position.x, y, transform.position.z);
}Clamp retorna um novo número e não altera nada por conta própria, então atribua o resultado. Aplique Clamp depois de todas as alterações do quadro e antes de gravar a posição novamente, e nenhum quadro mostrará o objeto além do limite.
Desafio
MédioDê movimento ao apanhador, a barra azul.
- Em
Update(), copietransform.position.xparafloat xe, em seguida, some ou subtraiaspeed * Time.deltaTimeconforme a seta pressionada. - Mantenha o apanhador de 2 unidades de largura no chão (x de -5 a 5):
x = Mathf.Clamp(x, -4f, 4f);. - Grave
xde volta emtransform.position, mantendo y e z.
Pressione “Jogar” e mantenha as setas pressionadas: ele para nas bordas. Depois, “Verificar”.
Experimente você mesmo
using UnityEngine;
public class Catcher : MonoBehaviour
{
[SerializeField] private float speed = 6f;
void Update()
{
// Setas: deslize ao longo de x a speed unidades por segundo.
// Mantenha o catcher inteiro no chão (x de -5 a 5, o catcher tem largura 2).
}
}
Todas as lições de Fundamentos de Scripting no Unity
1Fundamentos de C# no Unity
Olá, UnityVariáveisDecimais precisam de um fTexto no ConsoleVariáveis que guardam valoresIf e ElseComparar númerosRevisão: Coletor de Moedas7Laços e Métodos
Repita com forLaços dentro de laçosEscreva um métodoMétodos que respondemArraysRevisão: Escada10Encontrando coisas
Buscar pelo nomeTagsBuscar por tipoReferências são melhores que FindO null do UnityRevisão: moeda mais próxima13Projeto: Desvie dos Blocos
O CorredorBlocos do Céu2Faça-o se mover
Posicione o cuboMova a cada quadroGire a cada segundoDirija com as teclasRecapitulando: dirija o cubo5Vetores
Somando vetoresDireçõesEspaço local e globalVelocidade diagonalDistância entre objetosVector3 é uma structRevisão: piloto de drone8GameObjects e Componentes
Referências no InspectorObter um componenteComponentes ausentesAdicionar um componenteRequireComponentMostrar e ocultarRevisão: Interruptor de luz6Transformações e hierarquia
Pais e filhosIçar a bandeiraEscalaOlhar para as coisasMover-se em direção a um pontoRevisão: Lua em órbita9Projeto: Pegue a Estrela
O PegadorUma Estrela CadentePratique por conta própria: Playground de Unity