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

Unity'de Animator.SetFloat() Metodu ile Animasyonları Kontrol Etme

Paylaşan: Unity Eğitim 07 September 2025 4 dakika okuma 63 görüntülenme

Unity'de Animator.SetFloat() Metodu ile Animasyonları Kontrol Etme


Unity oyun motorunda animasyonları kontrol etmenin en güçlü yollarından biri, Animator.SetFloat() metodudur. Bu metod, animasyonlarınızı çeşitli parametrelere bağlı olarak dinamik olarak değiştirmenize olanak tanır. Bu rehberde, Animator.SetFloat() metodunu detaylı bir şekilde ele alacak, kullanımını örneklerle açıklayacak ve animasyon sisteminizi bir üst seviyeye taşımanıza yardımcı olacağız.

Animator.SetFloat() Metodunun Temelleri


Animator.SetFloat() metodu, animasyon denetleyicisine (Animator) bir float değer gönderir. Bu float değer, animasyon kliplerinin karışımını (blending) kontrol eden animasyon parametrelerine atanır. Örneğin, bir karakterin yürüme animasyonunun hızını kontrol etmek için bir "Speed" parametresi kullanabilir ve bu parametreye farklı float değerler göndererek yürüme hızını değiştirebilirsiniz.

Animasyon Parametrelerinin Oluşturulması


Animator.SetFloat() metodunu kullanmadan önce, animasyon denetleyicinizde bir animasyon parametresi oluşturmanız gerekir. Bunu Animator penceresinde (Window > Animation > Animator) yapabilirsiniz. "Create" butonuna tıklayarak yeni bir parametre ekleyin ve "Float" tipini seçin. Parametreye anlamlı bir isim verin (örneğin, "Speed", "Health", "Jump").

Animator.SetFloat() Metodunun Kullanımı


Animator.SetFloat() metodu şu şekilde kullanılır:
animator.SetFloat("ParameterName", floatValue);

Burada:

  • animator: Animasyon denetleyicisine referans.

  • "ParameterName": Oluşturduğunuz animasyon parametresinin adı (tırnak içinde).

  • floatValue: Parametreye gönderilecek float değer.


Örnek olarak, "Speed" adlı bir parametreye 1.0f değerini göndermek için şu kodu kullanabilirsiniz:
animator.SetFloat("Speed", 1.0f);

Bu kod, karakterinizin hızlı bir şekilde yürümesini sağlayacaktır. 0.0f değerini gönderirseniz, karakteriniz hareketsiz kalır. 0.5f gibi ara değerler ise yürüyüş hızını kademeli olarak değiştirir.

Örnek Senaryo: Karakter Hareketleri


Bir karakterin hareketlerini kontrol etmek için Animator.SetFloat() metodunu nasıl kullanabileceğimize dair bir örnek inceleyelim. Karakterin yürüme, koşma ve atlama animasyonlarını farklı hızlarda oynatmak istiyoruz.

Öncelikle, Animator penceresinde "Speed" ve "Jump" adlı iki float parametresi oluşturuyoruz. Sonra, C# script'imizde şu kodu yazıyoruz:

using UnityEngine;

public class CharacterController : MonoBehaviour
{
public Animator animator;

void Update()
{
float horizontalInput = Input.GetAxis("Horizontal");
float verticalInput = Input.GetAxis("Vertical");

float speed = Mathf.Clamp01(new Vector2(horizontalInput, verticalInput).magnitude);
animator.SetFloat("Speed", speed);

if (Input.GetButtonDown("Jump"))
{
animator.SetFloat("Jump", 1.0f);
}
else
{
animator.SetFloat("Jump", 0.0f);
}
}
}


Bu kod, yatay ve dikey girişleri alarak karakterin hızını hesaplıyor ve "Speed" parametresine gönderiyor. Atlama tuşuna basıldığında ise "Jump" parametresine 1.0f değeri gönderiliyor, aksi takdirde 0.0f gönderiliyor. Animasyon klipleriniz bu parametrelere göre ayarlanmalıdır.

Animasyon Blend Tree'leri ile Gelişmiş Kontrol


Animasyonları daha incelikli kontrol etmek için Blend Tree'ler kullanabilirsiniz. Blend Tree'ler, farklı animasyon kliplerini parametrelere bağlı olarak karıştırarak daha akıcı geçişler sağlar. Örneğin, "Speed" parametresine bağlı olarak farklı yürüme hızlarını bir Blend Tree ile karıştırabilirsiniz.

Animator.SetFloat() Metodunun Parametreleri


Animator.SetFloat() metodu, isteğe bağlı olarak bir dampingTime ve deltaTime parametresi de alabilir. DampingTime, parametre değerinin değişiminin yumuşaklığını kontrol ederken, deltaTime, animasyonun zamanlamasını kontrol etmeye yardımcı olur. Bu parametreleri kullanarak animasyonlarda daha doğal ve akıcı geçişler elde edebilirsiniz.
animator.SetFloat("Speed", speed, dampingTime, deltaTime);

Bu kod, "Speed" parametresinin değerini dampingTime ve deltaTime parametrelerine göre yumuşak bir şekilde değiştirir.

Sonuç


Animator.SetFloat() metodu, Unity'de animasyonları dinamik ve etkileşimli bir şekilde kontrol etmenin güçlü bir yoludur. Bu rehberde öğrendiğiniz bilgilerle, oyunlarınızda daha gerçekçi ve etkileyici animasyonlar oluşturabilirsiniz.

 

Unutmayın ki, animasyon sistemini tam anlamıyla anlamak ve ustalaşmak için bolca pratik yapmanız gerekmektedir.

🧠 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!