Memainkan animasi tanpa campuran.
Jika tidak ada nama yang disediakan maka animasi default akan dimainkan. Dalam kasus di mana animasi tidak dapat dimainkan (misalnya ketika tidak ada animasi default atau tidak ada animasi dengan nama yang ditentukan), fungsi akan kembali false
. PlayMode opsional memungkinkan Anda memilih bagaimana animasi ini akan mempengaruhi yang lain sudah bermain.
Jika animasi yang ditentukan sudah bermain maka animasi lain akan dihentikan tetapi animasi tidak akan mundur ke awal. Ketika akhir animasi tercapai secara otomatis akan dihentikan dan diubah kembali ke awal kecuali PlayMode ditetapkan ke Loop. Jika Animasi. Login disebut pada objek selama pembaruan bingkai di mana objek juga deactivated maka panggilan akan secara efektif dibatalkan. Animasi tidak akan mulai bermain ketika objek kemudian diaktifkan kembali. Namun, jika panggilan pada bingkai berikutnya (sekali objek masih tidak aktif) maka animasi akan mulai bermain setelah mengaktifkan kembali.
Untuk menggunakan Animasi. Login data animasi harus terlihat di jendela Inpsector. Jendela ini berisi semua animasi untuk GameObject dalam array. Sebagai contoh dua animasi jump
dan spin
disimpan dalam daftar Animasi. Animasi. Login dapat bermain setiap animasi ini. Animation juga dapat menggabungkan animasi. Sebuah (tidak didukung dan tidak didokumentasikan) AnimationState. layer
digunakan untuk ini. Misalnya meninggalkan jump
pada lapisan nol dan bergerak spin
ke layer 123 akan memungkinkan mereka untuk dimainkan bersama.
Animations harus ditandai sebagai 'Legacy' dalam Inspektur untuk animasi untuk ditemukan oleh metode ini. Pilihan ini muncul setelah beralih Jendela Inspektur ke 'Debug'.
using UnityEngine;
// Animation.Play example. Let the S and J keys start // a spin or jump animation. Let Space play back spin and // jump at the same time. Let Z play spin and jump with // spin doubled in speed. // // Spin: rotate the cube 360 degrees in half or one second // Jump: bounce up to 2 units and down in one second // // Note: AnimationState.layer is no longer supported, but still exists.
public class ExampleScript : MonoBehaviour { private Animation anim;
void Start() { anim = gameObject.GetComponent<Animation>(); anim["spin"].layer = 123; }
// double the spin speed when true private bool fastSpin = false;
void Update() { // leave spin or jump to complete before changing if (anim.isPlaying) { return; }
if (Input.GetKeyDown(KeyCode.S)) { Debug.Log("Spinning"); anim.Play("spin"); }
if (Input.GetKeyDown(KeyCode.J)) { Debug.Log("Jumping"); anim.Play("jump"); }
// combine jump and spin if (Input.GetKeyDown(KeyCode.Space)) { Debug.Log("Jumping and spinning"); anim.Play("jump"); anim.Play("spin"); }
// have spin speed reverted to 1.0 second if (fastSpin == true) { anim["spin"].speed = 1.0f; fastSpin = false; }
if (Input.GetKeyDown(KeyCode.Z)) { Debug.Log("Jumping and spinning in half a second"); anim.Play("jump"); anim["spin"].speed = 2.0f; anim.Play("spin");
// we've used spin at a speed of two, now mark // the spin speed to revert back to one fastSpin = true; } } }