Makanan
Pelajaran 5 dari 14 dalam kursus Game Unity: Snake 3D di Coddy.
Makanan muncul di sel acak. Sel menggunakan bilangan bulat, jadi pilih x dan z dengan versi int dari Random.Range. Untuk int, nilai maksimum tidak disertakan: Random.Range(1, 7) melempar dadu dengan hasil 1 sampai 6, tidak pernah 7. Untuk menyertakan suatu angka, minta angka yang satu lebih besar darinya.
Dengan argumen float, Random.Range mengembalikan angka apa pun di antaranya, seperti 3.62, yang bukan bagian tengah sel, sehingga ular tidak akan pernah bertemu makanan. Peti pada kisi 10 kali 10 dengan sel dari 0 sampai 9:
int row = Random.Range(0, 10); // 0 hingga 9
int column = Random.Range(0, 10);
chest.position = new Vector3(column, 0f, row);Papan menampung satu makanan setiap kalinya, jadi game membuatnya sekali, di Start(), lalu memindahkannya setiap kali membutuhkan tempat baru. GameManager mengelola makanan, dan membaca ukuran papan dari edge milik ular melalui field snake.
Tantangan
SedangLengkapi GameManager. Scene menetapkan snake ke Snake milik kepala dan foodPrefab ke bola merah.
- Tambahkan
public Snake snake;,public GameObject foodPrefab;danprivate Transform food;. - Di
Start(), buat instance darifoodPrefab, simpan Transform-nya difood, lalu panggilMoveFood(). - Tulis
void MoveFood(): fungsi ini menempatkanfoodpada sel acak, dengan x dan z masing-masing dari-snake.edgesampaisnake.edge, dan y bernilai 0.
Tekan Mainkan dan temukan makanan di papan, lalu tekan Periksa.
Coba sendiri
using UnityEngine;
public class GameManager : MonoBehaviour
{
// Menjalankan permainan: makanan, skor, dan akhir permainan. Bab 2 akan melengkapinya.
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.