Unity

[Unity Tip] Unity Legacy Animation System 이해하기

유니얼 2023. 11. 20. 02:15
728x90

레거시 애니메이션 (Legacy Animation)

레거시 애니메이션 (Legacy Animation)은 Unity의 이전 애니메이션 시스템으로, 주로 Unity 4 버전 이전에서 사용되었던 간단한 애니메이션을 만들고 제어하기 위한 방법을 제공하는 시스템입니다. 다음은 레거시 애니메이션의 개념과 세부 설명입니다:

개념:

레거시 애니메이션은 Unity의 이전 애니메이션 시스템으로, Unity 4 버전 이전에 주로 사용되었습니다. 이 시스템은 다음과 같은 주요 특징을 가지고 있습니다:

  • UI 기반 제어: 레거시 애니메이션은 Unity의 인스펙터를 사용하여 애니메이션 이벤트, 트리거 및 파라미터를 설정하고, 코드 작성 없이 애니메이션을 제어할 수 있습니다. 이것은 비전문가나 초보자들이 애니메이션을 더 쉽게 제어할 수 있도록 도와줍니다.
  • 간편성: 레거시 애니메이션은 간단한 애니메이션 제작과 제어를 위한 도구로, 복잡한 설정이 필요 없어 초보자들도 쉽게 활용할 수 있습니다. 이로써 간단한 3D 및 2D 애니메이션, UI 애니메이션을 손쉽게 만들 수 있습니다. 코드 작성 없이도 애니메이션을 설정하고 제어할 수 있어, 빠르게 결과물을 얻을 수 있는 장점이 있습니다.

Legacy Animation 인스펙터 화면

활용 방안:

레거시 애니메이션은 다음과 같은 활용 방안이 있습니다:

  • 간단한 3D 및 2D 애니메이션: 레거시 애니메이션은 간단한 3D 모델 및 2D 스프라이트 애니메이션을 만들기에 적합합니다. 복잡한 애니메이션 시스템을 구축할 필요가 없는 간단한 애니메이션 요구 사항을 충족시킬 수 있습니다.
  • UI 애니메이션: 게임의 사용자 인터페이스 (UI) 애니메이션을 만들 때 레거시 애니메이션을 사용할 수 있습니다. Unity의 UI 요소와 통합하기 용이하며, UI 요소에 애니메이션을 적용하는 데 편리합니다.
  • 코드 미사용: 레거시 애니메이션은 코드 작성 없이도 인스펙터 내에서 애니메이션 이벤트 및 트리거를 설정하고 제어할 수 있습니다. 이것은 개발자가 코드를 작성하지 않고도 간단한 애니메이션을 조작하고 테스트할 수 있도록 해줍니다.

활용해보기:

레거시 애니메이션을 활용하기 위해서는 모델의 애니메이션 타입을 Legacy로 설정하고 Animation 콤포넌트를 추가해야 합니다. 그리고 Legacy 애니메이션으로 설정된 애니메이션들을 Animation 콤포넌트에 추가합니다.

Legacy Animation 설정

그 다음으로 Animation를 활용하기 위한 코드를 작성합니다. 여기에서는 일정 시간이 지나면 다음 애니메이션이 나오도록 코드를 구현해봤습니다.

public class LegacyAnimationController : MonoBehaviour
{
    Animation _animation;

    public List<string> animationClipNames = new List<string>();

    public float ElapesedTime = 3;

    private float timer = 0;
    private int currentIndex = 0;

    void Start()
    {
        _animation = GetComponent<Animation>();
        foreach (AnimationState state in _animation)
        {
            animationClipNames.Add(state.name);
        }
    }

    void Update()
    {
        timer += Time.deltaTime;
        if(timer> ElapesedTime)
        {
            currentIndex++;
            if (currentIndex >= animationClipNames.Count)
                currentIndex = 0;

            _animation.Play(animationClipNames[currentIndex]);
            timer = 0;
        }
    }
}

마무리

레거시 애니메이션 시스템은 간편하게 간단한 3D 및 2D 애니메이션 및 UI 애니메이션을 만들고 제어하는데 사용되는 Unity의 이전 애니메이션 도구입니다. 이 시스템은 코드 작성을 최소화하며 빠르게 결과물을 얻을 수 있는 간단한 UI 기반 제어를 제공하여 프로젝트 개발을 단순화합니다.

반응형