Unity Mecanim Tuşa Basıldığında Animasyon Nasıl Oynatılır

Mecanim, geliştiricilere gelişmiş animasyon kontrolü ve zengin özelliklere sahip bir düzenleyici sağlayan Unity için durum odaklı bir araçtır.

Mecanim'in öne çıkan özellikleri animasyon harmanlama ve animasyon yeniden hedeflemedir.

Animasyon karıştırma, animasyonlar arasında yumuşak geçişler yapmaya yönelik otomatik bir işlemdir.

Animasyon yeniden hedefleme, her yeni karakter için yeni animasyonlar oluşturma ihtiyacını ortadan kaldırarak, mevcut animasyonların birden fazla karakter donanımı arasında çalışacak şekilde yeniden tasarlanması sürecidir.

Bu derste, Mecanim ile bir Küpün nasıl canlandırılacağını ve Tuşa Basıldığında Animasyonun nasıl oynatılacağını göstereceğim.

Adımlar

Unity'de bir Küpü canlandırmak için aşağıdaki adımları izleyin:

  • Yeni Küp oluştur (GameObject -> 3D Nesne -> Küp)

  • Küp'ü seçin ve ardından Animasyon penceresini açın (Pencere -> Animasyon -> Animasyon)
  • Animasyon penceresinde "Create"'e tıklayın; bu, yeni bir animasyon, yeni bir Animatör Denetleyicisi oluşturacak ve Küp'e bir Animatör bileşeni ekleyecektir.
  • Yeni animasyona ad verin "SpinAnimation"

  • Animasyon Penceresinde AddProperty -> Transform -> Rotation'a tıklayın.
  • Bu animasyon başlangıç ​​ve bitiş olmak üzere 2 kareden oluşacaktır.
  • İlk kare için döndürmeyi (0, 0, 0) olarak ayarladık

  • Son kare için döndürmeyi (0, 360, 0) olarak ayarladık.

Animasyon hazır.

İpucu: Daha fazla animasyon oluşturmak için Animasyon penceresinde animasyon adına tıklayın ve ardından "Create new Clip..." seçeneğine tıklayın.

Mecanim Animator Controller'ı kurmak için aşağıdaki adımları izleyin:

  • Animasyonla oluşturulan Animator Controller varlığına çift tıklayın

  • "Animator" başlıklı yeni bir pencere açılacaktır; bu pencere şuna benzemelidir:

  • "Entry"'ten "SpinAnimation"'ya doğru işaret eden bir ok olduğunu fark edeceksiniz, bu da animasyonun Sahne başlar başlamaz oynatılacağı anlamına gelir, ancak istediğimiz bu değil, animasyonu yalnızca tuşa basıldığında oynatmak istiyoruz.

Mecanim'in bir giriş animasyonu olması gerektiğinden yapabileceğimiz şey yeni bir Boş durum oluşturmak ve onu bir Giriş haline getirmektir:

  • Animatör penceresine sağ tıklayın -> Durum Oluştur -> Boşalt:

  • Giriş durumunu seçin -> Üzerine sağ tıklayın -> StateMachine Varsayılan Durumunu Ayarla, ardından "New State": üzerine gelin

Yapılacak son şey SpinAnimation'a geçiş yapmaktır, ancak geçişi yalnızca belirli koşul karşılandığında yapmak istiyoruz, işte o zaman Parametreler Sekmesi devreye girer:

  • Animatör penceresinde Parametreler sekmesine ve ardından (+) sembolüne tıklayın:

Birden fazla türün mevcut olduğunu fark edeceksiniz, ancak şimdilik Trigger'yi seçeceğiz, bool'a benzer ancak bool'dan farklı olarak, animasyon tamamlandığında kendisini otomatik olarak false değerine ayarlar, tek seferlik animasyonlar için kullanışlıdır:

  • Parametreyi adlandırın "spinTrigger"

  • Son olarak "Any State"'i seçin -> Üzerine Sağ Tıklayın -> Geçiş Yap, ardından SpinAnimation'ın üzerine gelin:

  • Geçiş Okuna tıklayın ve Koşullar altındaki Denetçi Görünümünde (+) öğesine tıklayın ve spinTrigger parametresinin seçildiğinden emin olun.

  • Varsayılan olarak Unity ile oluşturulan animasyonlarda döngü etkindir, ancak Animasyonu yalnızca bir kez oynatmak istediğimiz için yapmamız gereken, Proje görünümünde Animasyon Klibi'ni seçip Döngü Süresi onay kutusunun işaretini kaldırmaktır:

Mecanim parametrelerini bir komut dosyasından kontrol edebilmek için özel işlevleri kullanmamız gerekecek, aşağıdaki kodu kontrol edin:

  • Yeni bir komut dosyası oluşturun, onu "AnimationTest" olarak adlandırın, içindeki her şeyi kaldırın ve ardından aşağıdaki kodu içine yapıştırın:

AnimasyonTest.cs

using UnityEngine;

public class AnimationTest : MonoBehaviour
{

    Animator animator;

    // Start is called before the first frame update
    void Start()
    {
        //Get Animator component
        animator = GetComponent<Animator>();
    }

    // Update is called once per frame
    void Update()
    {
        //Play spin animation on key press
        if (Input.GetKeyDown(KeyCode.Q))
        {
            animator.SetTrigger("spinTrigger");
        }
    }
}
  • AnimationTest.cs betiğini Animator bileşeniyle Cube'a ekleyin:

Şimdi test edelim:

Sharp Coder Video oynatıcı

Her şey beklendiği gibi çalışıyor; Q tuşuna basıldığında animasyon oynatılıyor.

Önerilen Makaleler
Unity'de İnteraktif Menü Sistemi Oluşturma
Animasyonlar Unity'ye Nasıl Aktarılır
Unity'de Oyununuz için Doğru Fon Müziğini Nasıl Seçersiniz?
Unity Cinemachine ve Zaman Çizelgesi Eğitimi
Unity'de Arazideki Ağaçlar Nasıl Boyanır?
Unity'de FNAF'tan Esinlenen Bir Oyun Nasıl Yapılır
Birlik İçin Sahip Olmanız Gereken Genel Amaçlı Varlıklar