Version: 2021.3



You can use the Animator.MatchTarget function to handle this kind of situation. Imagine, for example, you want to arrange a situation where the character jumps onto a platform and you already have an animation clip for it called Jump Up. Firstly, you need to find the place in the animation clip at which the character is beginning to get off the ground, note in this case it is 14.1% or 0.141 into the animation clip in normalized time:

アニメーションクリップの中で、キャラクターが着地する場所を見つけることも必要です。この場合78.0%、または、0.78 です。

With this information, you can create a script that calls MatchTarget which you can attach to the model:

using UnityEngine;
using System;

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) {
                animator.MatchTarget(jumpTarget.position, jumpTarget.rotation, AvatarTarget.LeftFoot,
                                                       new MatchTargetWeightMask(, 1f), 0.141f, 0.78f);

上記のスクリプトによって、キャラクターは現在の場所からジャンプして目的の地点に左足で着地します。MatchTarget を使用するときは、一般的に、ゲームプレイの正しい瞬間に呼び出さないと役立たないことに気を付けてください。