Mengetahui kapan animasi selesai di Unity sangat krusial dalam pengembangan game. Ketepatan waktu dalam menjalankan event setelah animasi berakhir menentukan alur gameplay yang mulus dan responsif. Artikel ini akan membahas berbagai metode untuk mendeteksi kapan sebuah animasi selesai di Unity, memberikan solusi yang praktis dan mudah dipahami, bahkan untuk pemula.
Salah satu cara paling umum untuk menangani event setelah animasi selesai di Unity adalah dengan memanfaatkan event Animation Event. Metode ini sangat intuitif dan mudah diimplementasikan. Anda cukup menambahkan event ke timeline animasi Anda, lalu menulis kode yang akan dieksekusi ketika event tersebut dipicu. Event ini dipicu tepat ketika animasi mencapai frame yang telah ditentukan.

Berikut contoh sederhana penggunaan Animation Event:
- Buka jendela Animation di Unity.
- Pilih animasi yang ingin Anda tambahkan event.
- Klik pada timeline animasi di titik waktu ketika animasi selesai.
- Klik kanan dan pilih Add Animation Event.
- Beri nama event, misalnya “AnimationEnded”.
- Pada bagian Function, tuliskan nama fungsi yang akan dieksekusi.
Kemudian, di skrip Anda, tuliskan fungsi yang sesuai dengan nama yang Anda tentukan:
C#
using UnityEngine;
public class MyScript : MonoBehaviour {
public void AnimationEnded(){
Debug.Log("Animasi telah selesai!");
// Tambahkan kode lain yang ingin Anda eksekusi di sini
}
}
Metode ini sangat ideal untuk animasi sederhana. Namun, untuk animasi yang lebih kompleks atau dinamis, metode lain mungkin lebih cocok.
Menggunakan Animator.GetCurrentAnimatorStateInfo()
Metode lain yang handal untuk mendeteksi akhir animasi adalah dengan menggunakan fungsi Animator.GetCurrentAnimatorStateInfo()
. Fungsi ini memberikan informasi detail mengenai state animasi saat ini, termasuk waktu normalisasi yang telah berlalu. Dengan memeriksa nilai normalisasi ini, kita dapat menentukan kapan animasi telah selesai.
Berikut contoh implementasinya:
C#
using UnityEngine;
public class MyScript : MonoBehaviour {
public Animator animator;
void Update() {
AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
if (stateInfo.normalizedTime >= 1f) {
Debug.Log("Animasi telah selesai!");
// Tambahkan kode yang ingin Anda jalankan setelah animasi selesai
}
}
}
Perhatikan bahwa metode ini perlu dijalankan di dalam fungsi Update()
. Nilai normalizedTime
akan selalu berada di antara 0 dan 1, dimana 1 menandakan animasi telah selesai. Karena berada di dalam fungsi Update()
, maka akan terus memeriksa status animasi setiap frame.

Metode ini lebih fleksibel dibandingkan Animation Event karena tidak memerlukan penambahan event di timeline animasi. Namun, perlu diingat bahwa metode ini akan terus memeriksa state animasi setiap frame, sehingga dapat sedikit mempengaruhi performa jika digunakan secara berlebihan.
Memilih Metode yang Tepat
Pilihan metode yang tepat bergantung pada kompleksitas proyek dan kebutuhan spesifik. Untuk animasi sederhana, Animation Event menawarkan kemudahan dan efisiensi. Untuk animasi lebih kompleks atau yang membutuhkan deteksi real-time, Animator.GetCurrentAnimatorStateInfo()
memberikan fleksibilitas yang lebih besar.
Jangan lupa untuk selalu mengoptimalkan kode Anda untuk menjaga performa game tetap optimal. Pertimbangkan untuk menggunakan coroutine jika Anda perlu menjalankan tugas yang berat setelah animasi selesai, untuk menghindari penurunan frame rate.
Dengan memahami kedua metode ini, Anda akan lebih mampu mengendalikan alur permainan dan membuat pengalaman bermain yang lebih baik. Jangan ragu untuk bereksperimen dan menemukan metode terbaik untuk proyek Unity Anda. Semoga artikel tentang “unity when animation ends” ini bermanfaat!

Tips Tambahan
- Gunakan State Machine di Animator untuk pengelolaan animasi yang lebih kompleks dan terorganisir.
- Perhatikan penggunaan resources. Hindari pemanggilan fungsi yang tidak perlu.
- Selalu uji dan optimalkan kode Anda untuk memastikan performa game yang baik.
Dengan memahami konsep-konsep di atas, Anda akan mampu menguasai teknik untuk mendeteksi akhir animasi di Unity dan menciptakan game yang lebih interaktif dan menarik.