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.
Wyzwanie
ŚredniUzupełnij GameManager. Scena przypisuje do jego snake węża z głowy, a do foodPrefab czerwoną kulę.
- Dodaj
public Snake snake;,public GameObject foodPrefab;iprivate Transform food;. - W
Start()utwórz instancjęfoodPrefab, zachowaj jej Transform wfoodi wywołajMoveFood(). - Napisz
void MoveFood(): umieszcza onafoodna losowym polu, gdzie x i z są losowane z zakresu od-snake.edgedosnake.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.
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.