A Bola Rolante
Parte da seção Física e Jogabilidade do Journey de Unity da Coddy. Lição 28 de 71.
Este capítulo cria um jogo pequeno, Coin Rush. Você rola uma bola por uma arena cercada por muros usando as setas e coleta moedas antes que o tempo acabe. Dois scripts dividem o trabalho, como fariam em um projeto do Unity: Ball move a bola e mantém a pontuação e o cronômetro, e Coin fica em cada moeda. Coin.cs começa como uma classe vazia, e a próxima lição a completa.
Uma bola rola quando você a empurra, em vez de colocá-la em uma posição. Empurre o Rigidbody com AddForce e deixe sua rotação livre: a força move a bola, e o atrito do chão agarra a parte de baixo da bola e a faz girar. Esta bola de boliche rola pela pista enquanto a tecla Espaço está pressionada:
public float push = 6f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
if (Input.GetKey(KeyCode.Space))
{
rb.AddForce(Vector3.forward * push);
}
}Uma bola que rola sem deslizar gira a uma velocidade igual à sua rapidez dividida pelo raio; portanto, uma bola de raio 0.5 que se move a 3 unidades por segundo gira a 6 radianos por segundo (rb.angularVelocity). Em vez disso, altere seu transform.position ou congele sua rotação em Constraints, no Rigidbody, e ela deslizará como um disco de hóquei, sem girar. Uma esfera simples de uma só cor parece igual nos dois casos: para ver o rolamento, observe Angular Velocity na seção Info do Rigidbody enquanto o jogo está em execução.
Desafio
MédioInicie Coin Rush: role a bola com as setas.
- Em
Ball.cs, noStart(), definarb = GetComponent<Rigidbody>();. - No
FixedUpdate(), leiafloat x = Input.GetAxis("Horizontal");efloat z = Input.GetAxis("Vertical");, depois chamerb.AddForce(new Vector3(x, 0f, z) * force);.
Pressione “Jogar”, clique no jogo e role a bola: ela vira enquanto se move. Depois, pressione “Verificar”.
Experimente você mesmo
using UnityEngine;
public class Ball : MonoBehaviour
{
public float force = 10f;
private Rigidbody rb;
void Start()
{
}
void FixedUpdate()
{
// Empurre a bola com as setas: Horizontal ao longo de x, Vertical ao longo de z.
}
}
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