Unity Eğitim
Dersler
Forum Sınav Merkezi Premium 💎
Animasyon Dersleri

Unity'de Animator.SetTrigger() Metodu: Animasyonları Etkinleştirme ve Kontrol Etme

Paylaşan: Unity Eğitim 16 September 2025 3 dakika okuma 7 görüntülenme

Unity oyun motorunda animasyonlar, oyun deneyimini zenginleştirmek için olmazsa olmaz unsurlardır. Karakter hareketlerinden nesne etkileşimlerine kadar birçok alanda animasyonlardan faydalanırız. Bu animasyonları kontrol etmenin en etkili yollarından biri de Animator.SetTrigger() metodudur.

Animator.SetTrigger() Metodu Nedir?


Animator.SetTrigger() metodu, animasyon kontrolcünüzde (Animator) tanımlanmış bir tetikleyici parametresini (trigger parameter) etkinleştirir. Bu tetikleyici, animasyon durum makinesinde (state machine) belirli animasyonların başlatılmasını sağlar. Basitçe söylemek gerekirse, belirli bir animasyonu çalıştırmak için bir 'anahtar' görevi görür.

Tetikleyici Parametreleri (Trigger Parameters)


Animasyon kontrolcünüzde, Inspector penceresinden 'Animator' bileşenine giderek, 'Parameters' bölümünde tetikleyici parametreler oluşturabilirsiniz. Bu parametreler, Boolean tipinde olmalıdır ve animasyon durum makinesinde geçişleri tetiklemek için kullanılırlar.

Animator.SetTrigger() Kullanımı


Animator.SetTrigger() metodunu kullanmak oldukça basittir. Öncelikle, animasyon kontrolcüsüne bir referans almanız gerekir. Ardından, tetikleyici parametresinin adını metoda argüman olarak gönderirsiniz.
using UnityEngine;

public class AnimasyonKontrol : MonoBehaviour
{
public Animator animator;

public void AtlamaYap()
{
animator.SetTrigger("Jump");
}
}


Yukarıdaki örnekte, AtlamaYap() fonksiyonu çağrıldığında, "Jump" adlı tetikleyici parametresi etkinleştirilir. Bu, animasyon durum makinesinde 'Jump' tetikleyicisine bağlı animasyonun başlamasını sağlar. 'Jump' tetikleyicisi, animasyon kontrolcüsünde önceden tanımlanmış olmalıdır.

Örnek Senaryo: Karakter Hareketleri


Bir karakterin hareketlerini kontrol etmek için Animator.SetTrigger() metodunu kullanabileceğimizi düşünelim. Karakterin 'koşma', 'zıplama' ve 'saldırma' gibi farklı animasyonları olduğunu varsayalım.
using UnityEngine;

public class KarakterKontrol : MonoBehaviour
{
public Animator animator;

void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
animator.SetTrigger("Jump");
}
if (Input.GetKeyDown(KeyCode.LeftShift))
{
animator.SetTrigger("Attack");
}
if (Input.GetKey(KeyCode.W))
{
animator.SetBool("isRunning", true);
}
else
{
animator.SetBool("isRunning", false);
}
}
}


Bu örnekte, Space tuşuna basıldığında 'Jump' animasyonu, Left Shift tuşuna basıldığında 'Attack' animasyonu tetiklenir. W tuşuna basılı tutulduğu sürece 'isRunning' Boolean parametresi true olur ve koşma animasyonu oynatılır. Tuş bırakıldığında ise koşma animasyonu durur. Bu örnekte, koşma animasyonu için SetBool kullanılmıştır, zira koşma sürekli bir durumdur. Ancak zıplama ve saldırı anlık durumlar olduğu için SetTrigger kullanılmıştır.

Animator.SetTrigger() ve Diğer Metotlar


Animator.SetTrigger() metodu, Animator.SetBool(), Animator.SetInteger() ve Animator.SetFloat() gibi diğer metotlarla birlikte kullanılabilir. Bu metotlar, farklı tiplerdeki parametreleri kontrol etmek için kullanılır. Karmaşık animasyon sistemleri için bu metotların kombinasyonunu kullanmak gerekebilir.

Hata Ayıklama İpuçları


Animasyonlarınız beklendiği gibi çalışmıyorsa, aşağıdaki noktaları kontrol edin:

  • Tetikleyici parametresinin adını doğru yazdığınızdan emin olun.

  • Tetikleyici parametresinin animasyon kontrolcüsünde doğru şekilde tanımlandığından emin olun.

  • Animasyon durum makinesinde tetikleyici parametresine bağlı geçişlerin doğru şekilde ayarlandığından emin olun.

  • Animasyon dosyalarınızın doğru şekilde import edildiğinden ve hatalı olmadığından emin olun.


Sonuç


Animator.SetTrigger() metodu, Unity'de animasyonları kontrol etmenin güçlü ve esnek bir yoludur. Bu metodu kullanarak, oyunlarınızda daha etkileyici ve dinamik animasyonlar oluşturabilirsiniz.

🧠 Ders Sonu Değerlendirme Testi

Dersi tamamladıktan sonra bilgilerinizi test edin ve ekstra puanlar kazanın.

🔥 +50 XP Ödül
🔒

Sınava Katılmak İçin Giriş Yapın

Bu ders sonu testini çözebilmek, bilginizi test edip **+50 XP** kazanmak ve **Sınav Şampiyonu** rozetinin kilidini açmak için üye girişi yapmalısınız.

Yorumlar (0)

Yorum yazabilmek ve derslere katkıda bulunabilmek için giriş yapmalısınız.

İlk yorumu siz yapın!