Criar objetos com um temporizador
Parte da seção Noções básicas de scripting no Unity do Journey de Unity da Coddy. Lição 49 de 67.
Um gerador que cria algo a cada poucos segundos precisa de um temporizador. Time.deltaTime é o tempo que o último quadro levou; portanto, somá-lo em um campo a cada Update() fornece os segundos que se passaram. Quando o total atingir o intervalo, gere o objeto e subtraia o intervalo do total.
Esta fonte lança uma gota de água a cada meio segundo:
public GameObject dropPrefab;
public float interval = 0.5f;
float timer;
void Update()
{
timer += Time.deltaTime;
if (timer >= interval)
{
Instantiate(dropPrefab, transform.position, Quaternion.identity);
timer -= interval;
}
}timer -= interval preserva o tempo restante: se o quadro terminou em 0.51 segundos, a próxima metade de segundo começa a contar a partir de 0.01, e as gotas continuam no ritmo. timer = 0 descartaria esse tempo restante, então cada gota sairia um pouco atrasada, e o atraso aumentaria ao longo de uma partida longa. timer é privado porque ninguém precisa defini-lo no Inspector.
Desafio
MédioO Dropper deve soltar uma caixa a cada interval segundos (o Inspector indica 2): a primeira caixa 2 segundos após clicar em Play, depois mais uma a cada 2 segundos.
- Gere cada caixa na posição do dropper, sem rotação.
- Após cada caixa, registre seu número:
Box 1,Box 2e assim por diante.
Clique em Play e observe a pilha crescer; depois, clique em Check.
Experimente você mesmo
using UnityEngine;
public class BoxDropper : MonoBehaviour
{
public GameObject boxPrefab;
public float interval = 1f;
void Update()
{
// A cada interval segundos: soltar uma caixa e registrar "Box 1", "Box 2"...
}
}
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 Luz9Prefabs e criação de objetos
Prefabs e InstantiateCriar objetos com um temporizadorCriar objetos em uma gradeListas de objetosDestruirCriação aleatória de objetosRevisão: fogos de artifício