Distância entre objetos
Parte da seção Noções básicas de scripting no Unity do Journey de Unity da Coddy. Lição 21 de 67.
Vector3.Distance(a, b) indica a distância entre dois pontos, em unidades, medida em linha reta pelos três eixos. É o comprimento do passo entre eles, (a - b).magnitude, então a ordem de a e b não importa. De (0, 0, 0) a (3, 0, 4), a distância é 5.
Ao comparar uma distância com um número, um script sabe quando algo está perto. Este campista só consegue aquecer as mãos a até 4 unidades da fogueira, cuja posição é definida pelo Inspector:
public Vector3 campfire = new Vector3(3, 0, 4);
void Update()
{
float d = Vector3.Distance(transform.position, campfire);
if (d < 4f && Input.GetKeyDown(KeyCode.Space))
{
Debug.Log("You warm your hands");
}
}A distância também conta a altura: um campista 5 unidades acima do fogo está a 5 unidades dele, não a 0. Quando a altura não deve ser considerada, compare dois pontos com o mesmo y.
Desafio
FácilO personagem atravessa um pântano. A menos de 3 unidades do centro do pântano, swamp (definido no Inspector), ele se move com metade da speed; mais longe, ele se move em velocidade máxima. O código de movimentação está escrito: determine a velocidade a ser usada em cada frame e mantenha o próprio campo speed inalterado.
Pressione Play e caminhe pelo pântano; em seguida, pressione Check.
Experimente você mesmo
using UnityEngine;
public class Walker : MonoBehaviour
{
public float speed = 4f;
public Vector3 swamp = new Vector3(0, 0.5f, 0);
void Update()
{
float s = speed;
// A menos de 3 unidades do pântano, mova-se à metade da velocidade.
Vector3 direction = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));
transform.position += direction.normalized * s * Time.deltaTime;
}
}
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 Luz