Version: 2022.1
Solo 和 Mute 功能



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 函数的结果通常仅在游戏的正确点调用该函数时才有意义。

Solo 和 Mute 功能
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。