Menu
CoddyTech

Spadające bonusy

Lekcja 13 z 16 w kursie Gra w Unity: Zbijanie klocków w Coddy.

Rozbita cegła czasami upuszcza ulepszenie, które spada w kierunku paletki. To, czy je upuści, zależy od losowania: Random.value to losowa liczba zmiennoprzecinkowa z zakresu od 0 do 1, więc Random.value < 0.15f ma wartość true w około 15 przypadkach na 100. Przechowywanie szansy w polu pozwala ją dostrajać, a także ustawić ją w teście na 1, aby ulepszenie wypadało za każdym razem, albo na 0, aby nie wypadało nigdy.

To, które ulepszenie wypada, zależy od drugiego losowania: losowego indeksu tablicy prefabów. Random.Range z liczbami całkowitymi nie uwzględnia maksimum, więc Random.Range(0, array.Length) może wybrać każdy element. Łupy przeciwnika:

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

Ulepszenie spada ze stałą prędkością, przemieszczając się w każdej klatce, i niszczy się, gdy znajdzie się poniżej obszaru gry, dzięki czemu te, które minęły paletkę, nie gromadzą się. Jego prefab ma kinematyczny komponent Rigidbody i collider wyzwalacza, dzięki czemu system fizyki wie, że się porusza, a ulepszenie może wykryć, kiedy dotrze do paletki.

challenge icon

Wyzwanie

Trudny
  1. W PowerUp dodaj public float fallSpeed = 3f i public float bottomY = -9f. W Update() przemieszczaj go w dół z prędkością fallSpeed jednostek na sekundę i zniszcz power-up, gdy jego współrzędna y znajdzie się poniżej bottomY.
  2. W GameManager dodaj public GameObject[] powerUps (scena łączy prefabrykaty WidePowerUp i MultiPowerUp) oraz public float dropChance = 0.15f.
  3. W BrickBroken, z prawdopodobieństwem dropChance, utwórz losowy element z powerUps w miejscu, w którym znajdowała się cegła.

Na razie power-upy przelatują przez platformę: łapanie ich będzie następnym krokiem.

Naciśnij Play, rozbijaj cegły, aż coś wypadnie, a następnie naciśnij Check.

Spróbuj swoich sił

using UnityEngine;

public class PowerUp : MonoBehaviour
{
    // Ostatni rozdział: bonusy wypadające z rozbitych cegieł.
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Gra w Unity: Zbijanie klocków