Criação aleatória de objetos
Parte da seção Noções básicas de scripting no Unity do Journey de Unity da Coddy. Lição 53 de 67.
Random.Range(min, max) escolhe um número aleatório, e o que ele pode retornar depende do tipo dos números que você fornece. Com floats, pode sair qualquer valor de min a max, incluindo os dois limites. Com ints, o próprio max fica de fora. Portanto, para rolar um dado, use de 1 a 7:
int roll = Random.Range(1, 7); // 1, 2, 3, 4, 5 ou 6
Debug.Log("You rolled " + roll);A versão com int deixa max de fora para que Random.Range(0, names.Length) seja sempre um índice de array válido. Isso também significa que Random.Range(-5, 5) fornece apenas os números inteiros de -5 a 4, mesmo quando você armazena o resultado em um float. Escreva Random.Range(-5f, 5f) para obter qualquer valor intermediário.
Para posições e direções em 3D, o Unity tem dois vetores aleatórios prontos para usar. Random.insideUnitSphere é um ponto aleatório dentro de uma esfera de raio 1 ao redor de (0, 0, 0). Random.onUnitSphere é um ponto aleatório na superfície dessa esfera, o que o torna uma direção aleatória de comprimento 1. transform.position + Random.insideUnitSphere * 2f é uma posição a até 2 unidades de distância em qualquer direção, inclusive para cima e para baixo.
Desafio
MédioCada clique deve soltar uma caixa de um ponto aleatório acima do chão:
- x e z: cada um pode ter qualquer valor de -4 a 4, não apenas números inteiros;
- y: 5, para que a caixa caia no chão;
- sem rotação.
Pressione Play e clique algumas vezes, depois Check.
Experimente você mesmo
using UnityEngine;
public class CrateDropper : MonoBehaviour
{
public GameObject cratePrefab;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
// Solte uma caixa de um ponto aleatório: x e z de -4 a 4, y = 5
}
}
}
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