Koşucu
Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 75 / 85.
Bu bölümde küçük bir oyun olan Bloklardan Kaçış’ı yapacağız. Bloklar gökyüzünden düşerken bir koşucuyu şerit boyunca yönlendirirsin ve tek bir dokunuş koşuyu bitirir. Oyunun tamamı, her derste yeni bir özellik kazanan Runner betiğinden oluşur: yönlendirme, düşen bloklar, blokları temizleme, çarpışma ve puan.
İlk özellik, şeritte kalmayı sağlayan yönlendirmedir. Bunun için Catch the Star’dan Mathf.Clamp(value, min, max) kullanılır: değer aralığın altındaysa min, üstündeyse max, aksi hâlde değerin kendisini döndürür. Clamp’in nereye yerleştirildiği önemlidir. Bu şarj göstergesi, Space basılı tutulduğunda 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, değişiklikten sonra uygulanır. Önce clamp uygulanırsa değer, kare sonunda sınırı bir adım aşabilir 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 yüzden sonucu değişkene yeniden atamalısın.
Görev
OrtaDodge the Blocks'ı başlat: koşucuyu şeridi boyunca yönlendir.
Update()içinde,transform.positiondeğeriniVector3 piçine kopyala veInput.GetAxisRaw("Horizontal") * speed * Time.deltaTimedeğerinip.xdeğerine ekle. Ham eksen, hareketi anında tam hızda sağlar.p.x = Mathf.Clamp(p.x, -laneEdge, laneEdge);ayarla, ardındantransform.position = p;ayarla.
“Oyna” düğmesine bas, oyuna tıkla ve iki uca kadar koş: koşucu kenarlarda durur. Ardından “Kontrol et” düğmesine 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 konumunu şeritte tut
}
}
Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler
1Unity'de C# Temelleri
Merhaba, UnityDeğişkenlerOndalık Sayılar için f GerekirKonsolda MetinHatırlayan DeğişkenlerEğer ve DeğilseSayıları KarşılaştırmaTekrar: Coin Collector4Girdi
Basılı, Basılı Tutulmuş, BırakılmışEksenlerAdlandırılmış DüğmelerFare DüğmeleriTekrar: Zıplama Yükleme7Döngüler ve Metotlar
for ile tekrarlamaİç içe döngülerBir metot yazmaYanıt veren metotlarDizilerTekrar: Merdiven10Nesneleri Bulma
Ada Göre BulEtiketlerTüre Göre BulReferanslar Bulmaktan İyidirUnity'de NullÖzet: En Yakın Madeni Para13Proje: Bloklardan Kaç
KoşucuGökyüzünden Bloklar5Vektörler
Vektörleri ToplamaYönlerYerel ve Dünya UzayıÇapraz HızNesneler Arasındaki MesafeVector3 Bir Struct'tırTekrar: Drone Pilotu8GameObject'ler ve Bileşenler
Inspector'daki ReferanslarBir Bileşen AlEksik BileşenlerBileşen EkleRequireComponentGöster ve GizleÖzet: Işık Anahtarı3Inspector
Inspector AlanlarıSerializeFieldOndalıklı Sayılar ve MathfInspector ÖzellikleriTekrar: Asansör6Dönüşümler ve Hiyerarşi
Ebeveynler ve ÇocuklarBayrağı Göndere ÇekÖlçekNesnelere BakBir Noktaya Doğru Hareket EtTekrar: Yörüngedeki Ay9Proje: Yıldızı Yakala
YakalayıcıDüşen Bir YıldızKendi başına pratik yap: Unity playground