Menu
CoddyTech

Jedzenie

Lekcja 5 z 14 w kursie Gra w Unity: Wąż 3D w Coddy.

Jedzenie znajduje się na losowym polu. Współrzędne pól są liczbami całkowitymi, więc wybierz x i z za pomocą wersji int funkcji Random.Range. W przypadku liczb całkowitych górna granica jest wyłączona: Random.Range(1, 7) symuluje rzut kostką i losuje od 1 do 6, nigdy 7. Aby uwzględnić daną liczbę, podaj jako górną granicę liczbę o jeden większą.

Gdy argumenty są typu float, Random.Range zwraca dowolną liczbę z danego zakresu, na przykład 3.62, która nie znajduje się na środku pola, więc wąż nigdy nie natrafiłby na jedzenie. Skrzynia na siatce 10 na 10, z polami od 0 do 9:

int row = Random.Range(0, 10);      // od 0 do 9
int column = Random.Range(0, 10);
chest.position = new Vector3(column, 0f, row);

Na planszy znajduje się jednocześnie tylko jedno jedzenie, więc gra tworzy je raz, w Start(), a następnie przenosi je, gdy potrzebuje nowego miejsca. GameManager zarządza jedzeniem i odczytuje rozmiar planszy z pola edge węża za pośrednictwem pola snake.

challenge icon

Wyzwanie

Średni

Uzupełnij GameManager. Scena przypisuje do jego snake węża z głowy, a do foodPrefab czerwoną kulę.

  1. Dodaj public Snake snake;, public GameObject foodPrefab; i private Transform food;.
  2. W Start() utwórz instancję foodPrefab, zachowaj jej Transform w food i wywołaj MoveFood().
  3. Napisz void MoveFood(): umieszcza ona food na losowym polu, gdzie x i z są losowane z zakresu od -snake.edge do snake.edge, a y wynosi 0.

Naciśnij Play i znajdź jedzenie na planszy, a następnie naciśnij Check.

Spróbuj swoich sił

using UnityEngine;

public class GameManager : MonoBehaviour
{
    // Zarządza grą: jedzeniem, wynikiem i zakończeniem gry. W rozdziale 2 zostanie uzupełniona.
}
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: Wąż 3D