Unity3D :目标匹配

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

目标匹配

通常在游戏中可能出现以下情况:角色必须以某种方式移动,使得手或脚在某个时间落在某个地方。例如,角色可能需要跳过踏脚石或跳跃并抓住顶梁。

您可以使用 Animator.MatchTarget 函数来处理这种情况。例如,想象一下,你想安排一个场景,角色跳到一个平台上,你已经有一个叫做Jump Up的动画剪辑。首先,您需要在动画剪辑中找到角色开始离开地面的位置,请注意,在这种情况下,在标准化时间内,动画剪辑中的 14.1% 或 0.141:

您还需要在动画剪辑中找到角色即将落地的位置,在本示例中,此位置为 78.0% 或 0.78。

使用此信息,可以创建调用 MatchTarget 的脚本,该脚本可以附加到模型:

using UnityEngine;
using System;

[RequireComponent(typeof(Animator))] 
public class TargetCtrl : MonoBehaviour {

    protected Animator animator;    
    
    //场景中的平台对象
    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);
        }       
    }
}


该脚本将移动角色,使其从当前位置跳跃并以左脚落在目标上。请记住,使用 MatchTarget 函数的结果通常仅在游戏的正确点调用该函数时才有意义。

3D建模学习工作室整理翻译,转载请注明出处!

上一篇:Unity3D :Solo 和 Mute 功能 (mvrlink.com)

下一篇:Unity3D :反向动力学 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号