Menu
CoddyTech

Drops

Lektion 13 von 16 im Kurs Unity-Spiel: Brick Breaker von Coddy.

Ein zerstörter Stein lässt manchmal ein Power-up fallen, das auf den Schläger zufällt. Ob es fällt, entscheidet ein Zufallswurf: Random.value ist eine zufällige Gleitkommazahl zwischen 0 und 1, daher ist Random.value < 0.15f ungefähr 15 von 100 Mal wahr. Wenn du die Chance in einem Feld speicherst, kannst du sie anpassen und in einem Test auf 1 setzen, damit jedes Mal ein Power-up fällt, oder auf 0, damit keines fällt.

Welches Power-up fällt, entscheidet ein zweiter Zufallswurf: ein zufälliger Index in einem Array von Prefabs. Random.Range schließt bei Ganzzahlen den Maximalwert aus, daher kann Random.Range(0, array.Length) jedes Element auswählen. Die Beute eines Gegners:

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);
}

Ein Power-up fällt mit gleichmäßiger Geschwindigkeit, indem es sich in jedem Frame selbst bewegt, und zerstört sich selbst, sobald es sich unterhalb des Spielbereichs befindet, damit verpasste Power-ups sich nicht ansammeln. Sein Prefab hat ein kinematisches Rigidbody und einen Trigger-Collider. Dadurch weiß die Physik, dass es sich bewegt, und es kann erkennen, wann es den Schläger erreicht.

challenge icon

Aufgabe

Schwer
  1. Füge in PowerUp public float fallSpeed = 3f und public float bottomY = -9f hinzu. Bewege dich in Update() mit fallSpeed Einheiten pro Sekunde nach unten und zerstöre das Power-up, sobald sein y-Wert kleiner als bottomY ist.
  2. Füge in GameManager public GameObject[] powerUps (in der Szene werden die WidePowerUp- und MultiPowerUp-Prefabs verknüpft) und public float dropChance = 0.15f hinzu.
  3. Erzeuge in BrickBroken mit der Wahrscheinlichkeit dropChance ein zufälliges Element aus powerUps an der Stelle des zerstörten Steins.

Die Power-ups fallen vorerst durch den Schläger hindurch: Als Nächstes kommt das Auffangen.

Drücke Play, zerstöre Steine, bis eines herunterfällt, und klicke dann auf Check.

Probier es selbst

using UnityEngine;

public class PowerUp : MonoBehaviour
{
    // Das letzte Kapitel: Power-ups, die aus zerstörten Ziegeln fallen.
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Unity-Spiel: Brick Breaker