Menu
CoddyTech

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.

challenge icon

Tantangan

Sedang

Lengkapi GameManager. Scene menetapkan snake ke Snake milik kepala dan foodPrefab ke bola merah.

  1. Tambahkan public Snake snake;, public GameObject foodPrefab; dan private Transform food;.
  2. Di Start(), buat instance dari foodPrefab, simpan Transform-nya di food, lalu panggil MoveFood().
  3. Tulis void MoveFood(): fungsi ini menempatkan food pada sel acak, dengan x dan z masing-masing dari -snake.edge sampai snake.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.
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Game Unity: Snake 3D