• 티스토리 홈
  • 프로필사진
    유니얼
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
유니얼
  • 프로필사진
    유니얼
    • 분류 전체보기 (295)
      • Unity (17)
        • 게임 개발 (5)
      • Unreal (24)
        • 게임 개발 (20)
      • DirectX (36)
      • 코딩테스트 (91)
        • 프로그래머스 (25)
        • 백준 (66)
      • Google Workspace (1)
      • Programing (102)
        • C# (68)
        • C++ (24)
        • JavaScript (10)
      • 게임 서버 프로그래밍 (17)
      • Web (6)
        • 슈퍼코딩 (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
    등록된 댓글이 없습니다.
  • 최근 공지
    등록된 공지가 없습니다.
# Home
# 공지사항
#
# 태그
# 검색결과
# 방명록
  • [Unity Tip] Unity Legacy Animation System 이해하기
    2023년 11월 20일
    • 유니얼
    • 작성자
    • 2023.11.20.: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 기반 제어를 제공하여 프로젝트 개발을 단순화합니다.

    반응형
    저작자표시 비영리 변경금지 (새창열림)
    다음글
    다음 글이 없습니다.
    이전글
    이전 글이 없습니다.
    댓글
조회된 결과가 없습니다.
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
목차
표시할 목차가 없습니다.
    • 안녕하세요
    • 감사해요
    • 잘있어요

    티스토리툴바