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 애니메이션을 손쉽게 만들 수 있습니다. 코드 작성 없이도 애니메이션을 설정하고 제어할 수 있어, 빠르게 결과물을 얻을 수 있는 장점이 있습니다.


활용 방안:
레거시 애니메이션은 다음과 같은 활용 방안이 있습니다:
- 간단한 3D 및 2D 애니메이션: 레거시 애니메이션은 간단한 3D 모델 및 2D 스프라이트 애니메이션을 만들기에 적합합니다. 복잡한 애니메이션 시스템을 구축할 필요가 없는 간단한 애니메이션 요구 사항을 충족시킬 수 있습니다.
- UI 애니메이션: 게임의 사용자 인터페이스 (UI) 애니메이션을 만들 때 레거시 애니메이션을 사용할 수 있습니다. Unity의 UI 요소와 통합하기 용이하며, UI 요소에 애니메이션을 적용하는 데 편리합니다.
- 코드 미사용: 레거시 애니메이션은 코드 작성 없이도 인스펙터 내에서 애니메이션 이벤트 및 트리거를 설정하고 제어할 수 있습니다. 이것은 개발자가 코드를 작성하지 않고도 간단한 애니메이션을 조작하고 테스트할 수 있도록 해줍니다.
활용해보기:
레거시 애니메이션을 활용하기 위해서는 모델의 애니메이션 타입을 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 기반 제어를 제공하여 프로젝트 개발을 단순화합니다.
반응형