O Corredor
Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 75 de 85.
Neste capítulo, você vai criar um jogo pequeno: Dodge the Blocks. Você controla um corredor em uma pista enquanto blocos caem do céu, e um único toque encerra a corrida. O jogo inteiro está em um único script, Runner, que ganha um recurso em cada lição: controle, blocos caindo, remoção deles, o impacto e uma pontuação.
O primeiro recurso é o controle que mantém o corredor na pista, usando Mathf.Clamp(value, min, max) de Catch the Star: ele retorna min quando o valor está abaixo do intervalo, max quando está acima e, caso contrário, o próprio valor. Onde o clamp é aplicado faz diferença. Este medidor de carga enche enquanto a tecla Space está pressionada, esvazia quando não está e nunca sai do intervalo de 0 a 10:
[SerializeField] private float charge = 0f;
void Update()
{
if (Input.GetKey(KeyCode.Space))
{
charge += 4f * Time.deltaTime;
}
else
{
charge -= 2f * Time.deltaTime;
}
charge = Mathf.Clamp(charge, 0f, 10f);
transform.localScale = new Vector3(0.5f, charge, 0.5f);
}O clamp vem depois da alteração. Se o valor fosse limitado primeiro, ele poderia terminar o quadro um passo além do limite, e a barra seria desenhada usando esse valor. Mathf.Clamp também retorna um novo número em vez de alterar a variável que você passa, então atribua o resultado de volta à variável.
Desafio
MédioInicie Dodge the Blocks: conduza o corredor pela pista.
- Em
Update(), copietransform.positionparaVector3 pe adicioneInput.GetAxisRaw("Horizontal") * speed * Time.deltaTimeap.x. O eixo bruto move em velocidade máxima imediatamente. - Defina
p.x = Mathf.Clamp(p.x, -laneEdge, laneEdge);e, em seguida,transform.position = p;.
Pressione “Jogar”, clique no jogo e corra até as duas extremidades: o corredor para nas bordas. Depois, “Verificar”.
Experimente você mesmo
using UnityEngine;
public class Runner : MonoBehaviour
{
[SerializeField] private float speed = 6f;
[SerializeField] private float laneEdge = 4f;
void Update()
{
// mova-se ao longo de x com as setas e depois mantenha x dentro da faixa
}
}
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