Version: Unity 6.0 (6000.0)
언어 : 한국어
상태 머신 Solo 및 Mute
애니메이터 오버라이드 컨트롤러

타겟 매칭

게임에서는 캐릭터가 특정 시간에 특정 위치에 손이나 발이 착지하도록 이동해야 하는 경우가 많습니다. 예를 들어, 캐릭터가 징검다리를 건너거나 점프하여 머리 위 기둥을 잡아야 할 수 있습니다.

이러한 종류의 상황을 처리하기 위해 Animator.MatchTarget 함수를 사용할 수 있습니다. 예를 들어 캐릭터가 플랫폼으로 점프하는 상황을 연출하고 싶은데 이미 _점프 업_이라는 애니메이션 클립이 있다고 가정해 보겠습니다. 우선, 캐릭터가 지면에서 뜨기 시작하는 애니메이션 클립의 위치를 찾아야 합니다. 여기서는 정규화된 시간에 애니메이션 클립의 14.1% 또는 0.141입니다.

또한 캐릭터가 두 발로 막 착지하는 순간이 애니메이션 클립에서 어느 지점인지도 찾아야 하는데, 여기서는 78.0% 또는 0.78 지점입니다.

이 정보와 함께 MatchTarget을 호출하는 스크립트를 생성하여 모델에 연결할 수 있습니다.

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);
        }       
    }
}


스크립트는 캐릭터가 현재 위치에서 점프하여 왼발로 목표 지점에 착지하도록 캐릭터를 이동시킵니다. MatchTarget을 사용하는 경우 일반적으로 게임플레이의 올바른 시점에 호출된 경우에만 결과가 제대로 나옵니다.

상태 머신 Solo 및 Mute
애니메이터 오버라이드 컨트롤러