Menu
CoddyTech

Koşucu

Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 60 / 67.

Bu bölüm, Bloklardan Kaç adlı küçük bir oyun oluşturuyor. Bloklar gökyüzünden düşerken bir koşucuyu şerit boyunca yönlendirirsin; tek bir dokunuş koşuyu bitirir. Oyunun tamamı, her derste bir özellik kazanan tek bir betikten, Runner'dan oluşur: yönlendirme, düşen bloklar, onları temizleme, çarpışma ve puan.

İlk özellik, Catch the Star'dan Mathf.Clamp(value, min, max) kullanarak şeritte kalmayı sağlayan yönlendirmedir: değer aralığın altındaysa min, üstündeyse max, aksi hâlde değerin kendisini döndürür. Clamp işleminin nerede yapıldığı önemlidir. Bu şarj göstergesi Space basılı tutulurken dolar, basılı tutulmadığında boşalır ve 0 ile 10 aralığının dışına asla çıkmaz:

[SerializeField] private float charge = 0f;

void Update()
{
    if (Input.GetKey(KeyCode.Space))
    {
        charge += 4f * Time.deltaTime;
    }
    else
    {
        charge -= 2f * Time.deltaTime;
    }
    charge = Mathf.Clamp(charge, 0f, 10f);
    transform.localScale = new Vector3(0.5f, charge, 0.5f);
}

Clamp işlemi değişiklikten sonra gelir. Önce clamp uygulanırsa değer, kareyi sınırın bir adım ötesinde bitirebilir ve çubuk bu değere göre çizilir. Mathf.Clamp ayrıca, kendisine verdiğin değişkeni değiştirmek yerine yeni bir sayı döndürür; bu nedenle sonucu değişkene geri atamalısın.

challenge icon

Görev

Orta

Dodge the Blocks oyununa koşucu ile başla. Inspector, Runner betiğine speed (6) ve laneEdge (4) değerlerini verir.

  • Sol ve sağ oklar, koşucuyu x ekseni boyunca saniyede speed birim hareket ettirir.
  • x değeri hiçbir zaman -laneEdge değerinin altına veya laneEdge değerinin üstüne çıkmaz; böylece koşucu şeritte kalır.

Play'e bas, oyuna tıkla ve şeridin iki ucuna da koş, ardından Check'e bas.

Kendin dene

using UnityEngine;

public class Runner : MonoBehaviour
{
    [SerializeField] private float speed = 6f;
    [SerializeField] private float laneEdge = 4f;

    void Update()
    {
        // Ok tuşlarıyla x ekseni boyunca hareket et, ardından x'i şeritte tut
    }
}
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 Script Yazmanın Temelleri bölümündeki tüm dersler