Itens derrubados
Lição 14 de 19 do curso Jogo Unity: Quebra-Tijolos da Coddy.
Às vezes, um tijolo quebrado deixa cair um power-up que cai em direção à raquete. Se ele cai é uma questão de sorte: Random.value é um número de ponto flutuante aleatório de 0 a 1, então Random.value < 0.15f é verdadeiro cerca de 15 vezes em 100. Manter a chance em um campo permite ajustá-la e permite que um teste a defina como 1 para que caia sempre ou como 0 para que nunca caia.
Qual power-up cai é determinado por uma segunda rolagem: um índice aleatório em um array de prefabs. Random.Range com inteiros exclui o valor máximo, então Random.Range(0, array.Length) pode escolher todos os elementos. O saque de um inimigo:
public GameObject[] loot;
public float lootChance = 0.25f;
void DropLoot()
{
if (Random.value >= lootChance) return;
int pick = Random.Range(0, loot.Length);
Instantiate(loot[pick], transform.position, Quaternion.identity);
}Um power-up cai a uma velocidade constante, movendo-se a cada quadro, e se destrói quando fica abaixo da área de jogo, para que os que forem perdidos não se acumulem. Seu prefab tem um Rigidbody cinemático e um collider de gatilho, assim a física sabe que ele se move e ele poderá detectar quando alcançar a raquete.
Desafio
DifícilÀs vezes, tijolos quebrados derrubam um power-up.
- Em
PowerUp, adicionefallSpeed = 3febottomY = -9f; emUpdate(), faça-o cair a fallSpeed por segundo e destrua-o abaixo de bottomY. - Em
GameManager, adicionepublic GameObject[] powerUps;epublic float dropChance = 0.15f; - Em
BrickBroken, seRandom.value < dropChance, instanciepowerUps[Random.Range(0, powerUps.Length)]na posição do tijolo.
Pressione “Jogar” e quebre tijolos: de vez em quando, um deles derruba um power-up (a captura vem a seguir). Depois, pressione “Verificar”.
Experimente você mesmo
using UnityEngine;
public class PowerUp : MonoBehaviour
{
// O último capítulo: power-ups que caem dos tijolos quebrados.
}
Todas as lições de Jogo Unity: Quebra-Tijolos
Pratique por conta própria: Playground de Unity