Seringkali dalam permainan, situasi muncul di mana karakter harus bergerak dengan cara seperti itu tanah tangan atau kaki pada tempat tertentu pada waktu tertentu. Misalnya, karakter mungkin perlu melompat di batu-batu atau melompat dan mengambil balok overhead.
Anda dapat menggunakan Animator.MatchTarget fungsi untuk menangani situasi semacam ini. Bayangkan, misalnya, Anda ingin mengatur situasi di mana karakter melompat ke platform dan Anda sudah memiliki animation clipAnimasi data yang dapat digunakan untuk karakter animasi atau animasi sederhana. Ini adalah bagian "unit" sederhana dari gerakan, seperti (salah satu contoh spesifik) "Idle", "Walk" atau "Run". More info
Lihat di Glossary untuk itu disebut Jump Up. Pertama, Anda perlu menemukan tempat di klip animasi di mana karakter mulai dari tanah, dicatat dalam kasus ini adalah 14.1% atau 0,141 ke klip animasi dalam waktu normal: -
Anda juga perlu menemukan tempat di klip animasi di mana karakternya sekitar mendarat di kakinya, yang dalam kasus ini adalah di 78.0% atau 0.78.
Dengan informasi ini, Anda dapat membuat skrip yang memanggil MatchTarget yang dapat Anda tempelkan ke model:-
using UnityEngine;
using System;
[RequireComponent(typeof(Animator))]
public class TargetCtrl : MonoBehaviour {
protected Animator animator;
//the platform object in the scene
public Transform jumpTarget = null;
void Start () {
animator = GetComponent<Animator>();
}
void Update () {
if(animator) {
if(Input.GetButton("Fire1"))
animator.MatchTarget(jumpTarget.position, jumpTarget.rotation, AvatarTarget.LeftFoot,
new MatchTargetWeightMask(Vector3.one, 1f), 0.141f, 0.78f);
}
}
}
Script akan memindahkan karakter sehingga melompat dari posisi dan tanah saat ini dengan kaki kiri di target. Berhati-hatilah bahwa hasil penggunaan MatchTarget umumnya hanya akan masuk akal jika itu disebut pada titik kanan dalam gameplay.