Menu
CoddyTech

Makan

Pelajaran 6 dari 14 dalam kursus Game Unity: Snake 3D di Coddy.

Ular makan saat kepalanya melangkah ke sel makanan. Keduanya berada pada bilangan bulat, jadi membandingkan posisi mereka dengan == aman: == milik Unity pada Vector3 menganggap dua posisi sama jika jaraknya kurang dari 0.00001, dan penambahan sel utuh tidak pernah menghasilkan jarak sekecil itu.

Ular tahu kapan ia melangkah; GameManager tahu di mana makanan berada dan menyimpan skor. Jadi setelah setiap langkah, ular bertanya dan GameManager menjawab: IsFood(cell) mengembalikan bool, dan Eat() menambahkan satu poin lalu memindahkan makanan. Ular mengakses GameManager melalui Instance statis, singleton yang kamu temui dalam perjalanan C# for Unity.

Tanyakan tentang sel yang dimasuki kepala setelah bergerak. Kunci di grid diambil dengan cara yang sama:

transform.position = next;
if (key.position == transform.position)
{
    keysHeld++;
    key.gameObject.SetActive(false);
}
challenge icon

Tantangan

Sedang

Di GameManager:

  1. Tambahkan public static GameManager Instance;, atur nilainya di Awake(), lalu tambahkan private int score;.
  2. Tulis public bool IsFood(Vector3 cell): bernilai true saat cell adalah posisi makanan.
  3. Tulis public void Eat(): tambahkan 1 ke score dan panggil MoveFood().

Di Snake, di akhir Step(), setelah kepala bergerak: jika cell kepala adalah makanan, panggil Eat().

Tekan Play dan arahkan ular ke makanan, lalu tekan Check.

Coba sendiri

using UnityEngine;

public class GameManager : MonoBehaviour
{
    public Snake snake;
    public GameObject foodPrefab;
    private Transform food;

    void Start()
    {
        food = Instantiate(foodPrefab).transform;
        MoveFood();
    }

    void MoveFood()
    {
        int x = Random.Range(-snake.edge, snake.edge + 1);
        int z = Random.Range(-snake.edge, snake.edge + 1);
        food.position = new Vector3(x, 0f, z);
    }
}
quiz iconUji dirimu

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

Semua pelajaran di Game Unity: Snake 3D