Kadang-kadang animasi Anda datang sebagai "di tempat", yang berarti jika Anda meletakkannya di sceneAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
Lihat di Glossary, itu tidak akan memindahkan karakter yang ada di. Dengan kata lain, animasi tidak mengandung "root motionGerak simpul akar karakter, apakah itu dikendalikan oleh animasi itu sendiri atau eksternal. More info
Lihat di Glossary". Untuk ini, kita dapat memodifikasi gerakan akar dari skrip. Untuk menempatkan segalanya bersama-sama mengikuti langkah-langkah di bawah ini (tetap ada banyak variasi untuk mencapai hasil yang sama, ini hanya satu resep).
Akhirnya, untuk mengontrol gerakan, kita perlu membuat skrip (RootMotionScript.cs), yang mengimplementasikan callback OnAnimatorMove:-
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(Animator))]
public class RootMotionScript : MonoBehaviour {
void OnAnimatorMove()
{
Animator animator = GetComponent<Animator>();
if (animator)
{
Vector3 newPosition = transform.position;
newPosition.z += animator.GetFloat("Runspeed") * Time.deltaTime;
transform.position = newPosition;
}
}
}
Anda harus melampirkan RootMotionScript.cs ke objek "Dude". Ketika Anda melakukan ini, Animator componentKomponen pada model yang merupakan model yang menggunakan sistem Animasi. Komponen ini memiliki referensi aset Animator Controller yang mengontrol animasi. More info
Lihat di Glossary akan mendeteksi bahwa script memiliki fungsi OnAnimatorMove dan menunjukkan properti Apply Root Motion sebagai Handled by Script