Velocidade
Parte da seção Física e Jogabilidade do Journey de Unity da Coddy. Lição 5 de 71.
rb.linearVelocity indica como o corpo está se movendo no momento: um Vector3 em metros por segundo ao longo dos eixos x, y e z. Lê-lo mostra para onde o corpo está indo, e rb.linearVelocity.magnitude é sua velocidade. Defini-lo altera o movimento imediatamente, sem aceleração gradual e sem envolver a massa: uma caixa de 1 kg e um cofre de 50 kg definidos para 2 m/s passam a se mover exatamente a 2 m/s a partir da próxima etapa da física. A gravidade, o atrito e os impactos continuam agindo sobre ele depois disso.
Este kart anda para a frente exatamente a cruise m/s. Ele copia a velocidade, altera apenas z e a atribui de volta, então o valor de y dado pela gravidade permanece e o kart ainda cai ao chegar ao fim de uma rampa:
void FixedUpdate()
{
Vector3 vel = rb.linearVelocity;
vel.z = cruise; // para a frente a exatamente cruise m/s
rb.linearVelocity = vel; // y mantém o valor resultante da gravidade
}Definir y como 0 também descartaria a velocidade causada pela gravidade em cada etapa, e o kart desceria lentamente ao sair da rampa, em vez de cair. Antes do Unity 6, essa propriedade se chamava velocity. Tutoriais antigos ainda escrevem rb.velocity: no Unity 6, isso compila, com um aviso de que velocity está obsoleto e foi renomeado para linearVelocity. drag virou linearDamping da mesma forma. Use os nomes novos.
Desafio
FácilFaça o robô andar exatamente a speed m/s e deixe-o cair da borda.
- Em
FixedUpdate(), leiafloat h = Input.GetAxisRaw("Horizontal");e obtenhafloat vde"Vertical". - Defina
rb.linearVelocity = new Vector3(h * speed, rb.linearVelocity.y, v * speed);, mantendo o y da gravidade.
Pressione “Jogar” e caminhe para fora da borda: o robô para quando você solta o botão e cai. Em seguida, pressione “Verificar”.
Experimente você mesmo
using UnityEngine;
public class RobotWalk : MonoBehaviour
{
public float speed = 3f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
// Mova-se exatamente à velocidade speed com as setas, mantendo o y da gravidade
}
}
Todas as lições de Física e Jogabilidade
1Rigidbody
Gravidade e MassaEmpurrar com AddForcePular com um ImpulsoFixedUpdate para FísicaVelocidadeCorpos CinemáticosRevisão: Plataforma de Lançamento4Corrotinas
InvocarInvocar repetidamente, Cancelar invocaçãoSua primeira corrotinaLoops em corrotinasInterrompendo corrotinasRevisão: contagem regressiva10Projeto: Fuga da Arena
A ArenaCaçadores2Colisões
OnCollisionEnterO que eu acertei?Quebre no impactoNo chãoQuique e atritoFormas dos collidersRevisão: Parede destrutível5Projeto: Corrida das Moedas
A Bola RolanteMoedas para ColetarPratique por conta própria: Playground de Unity