Menu
CoddyTech

Tahta

Coddy'nin Unity'de 3D Yılan Oyunu kursunda ders 1 / 14.

Bu kursta 3D Snake yapacaksın: yukarıdan görülen, 15'e 15'lik bir tahtada küplerden oluşan bir yılan. Her seferinde bir hücre ilerler, ok tuşlarıyla veya WASD ile döner, yiyecek yer, büyür ve duvarlara ya da kendi kuyruğuna çarptığında ölür. Oyunu iki betik çalıştırır: baştaki Snake ve yiyecek sonraki bölümde gelene kadar boş kalan GameManager.

Hücreler bir birim genişliğindedir ve tam sayıların merkezindedir: x ve z, -7 ile 7 arasında değişir ve her hücre y 0'da yer alır. Yılan hücreler arasında asla kaymaz. Sabit bir ritim olan tik başına, örneğin 0.15 saniyede, bir hücre sıçrar ve arada hareketsiz durur.

Unity'de ritim bir zamanlayıcıdır: her karede Time.deltaTime ekle ve zamanlayıcı aralığa ulaştığında işlem yapıp aralığı çıkar. Bu işaret ışığı saniyede bir yanıp söner:

public Light beacon;
public float interval = 1f;
private float timer;

void Update()
{
    timer += Time.deltaTime;
    if (timer >= interval)
    {
        timer -= interval;
        beacon.enabled = !beacon.enabled;
    }
}

Zamanlayıcıyı 0'a sıfırlamak yerine aralığı çıkarmak, aralığın aşıldığı karede geçen süreyi korur; böylece ritim gecikmez.

challenge icon

Görev

Kolay

Kafa, (-3, 0, 0) hücresinde yeşil bir küptür. Snake'in tick değeri 0.15 saniyedir ve direction değeri Vector3.right'tır.

  1. Bir private float timer; ekle.
  2. Update() içinde Time.deltaTime kadar süreyi sayaca ekle. Sayaç tick değerine ulaştığında, sayaçtan tick değerini çıkar ve Step() metodunu çağır.
  3. Step() içinde kafayı direction yönünde bir hücre hareket ettir.

Oyna'ya bas ve kafanın sağa doğru ilerleyişini izle. Şimdilik tahtanın dışına çıkacak: duvarlar 4. derste gelecek. Ardından Kontrol Et'e bas.

Kendin dene

using UnityEngine;

public class Snake : MonoBehaviour
{
    public float tick = 0.15f;   // iki adım arasındaki saniye cinsinden süre
    private Vector3 direction = Vector3.right;

    void Update()
    {
        // Her tick saniyede bir Step() çağır
    }

    void Step()
    {
        // Başı direction yönünde bir hücre ilerlet
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Unity'de 3D Yılan Oyunu bölümündeki tüm dersler