스프라이트 스왑 소개
이 페이지에서는 스프라이트 스왑의 정의와 다양한 활용 사례, 제한 사항을 소개합니다. 스프라이트 스왑은 런타임 시 게임 오브젝트에 렌더링되는 스프라이트를 변경하는 것을 의미하며, 2D 액터나 기타 게임 오브젝트를 구성하는 스프라이트를 애니메이션화할 때 유용합니다.
예를 들어 애니메이션화된 액터를 구성하는 개별 스프라이트를 스왑하여 동일한 골격을 공유하는 여러 액터를 만들 수 있습니다(PSD Importer 패키지 필요). 또는 런타임 시 스프라이트를 스왑하여 애니메이션 클립을 생성할 수도 있습니다.
2D Animation 패키지 창에서 옵션을 선택하면 2D Animation 패키지의 샘플 프로젝트를 임포트할 수 있습니다. 이러한 샘플에 대한 자세한 내용은 개별 스프라이트 스왑 예제 페이지를 참조하십시오.
필수 에셋 및 컴포넌트
스프라이트 스왑에는 다음 에셋과 컴포넌트가 필요하며, 이는 2D Animation 패키지와 함께 제공됩니다.
스프라이트 라이브러리 에셋: 스프라이트 라이브러리 에셋에는 각 카테고리 및 레이블에 할당된 여러 스프라이트 세트가 포함되어 있습니다.
Sprite Library 컴포넌트: Sprite Library 컴포넌트는 게임 오브젝트가 참조할 스프라이트 라이브러리 에셋을 결정합니다.
Sprite Resolver 컴포넌트: Sprite Resolver 컴포넌트는 원하는 스프라이트의 카테고리 및 레이블 값을 참조하여 스프라이트 라이브러리 에셋에 등록된 스프라이트를 요청합니다.
기술적 제한 사항
다음은 스프라이트 스왑을 사용할 때 고려해야 하는 기술적 제한 사항입니다.
골격 애니메이션 제한 사항
액터를 애니메이션화하고 골격 애니메이션과 함께 스프라이트 스왑을 사용하려면 스왑되는 두 스프라이트의 골격이 동일해야 합니다. 스키닝 에디터의 Copy 툴과 Paste 툴을 사용하여 스프라이트에서 다른 스프라이트로 뼈대와 골격 데이터를 복제하면 스왑이 올바르게 수행됩니다.
애니메이터 제한 사항
단일 Animator 컨트롤러에서 한 개의 애니메이션 클립이 스프라이트 렌더러의 할당된 스프라이트를 애니메이션화하는 동시에 다른 애니메이션 클립이 Sprite Resolver의 스프라이트 해시를 애니메이션화할 수 없습니다. 이러한 두 클립이 동일한 Animator 컨트롤러에 있으면 서로 충돌하여 원치 않는 재생 결과를 유발하게 됩니다.
이 문제를 해결하기 위해 권장되는 방법은 다음과 같습니다.
첫 번째 방법은 애니메이션 클립을 별도의 Animator 컨트롤러로 분리하는 것입니다. 각 컨트롤러는 스프라이트 렌더러의 스프라이트 또는 Sprite Resolver의 스프라이트 해시를 애니메이션화하는 클립만 포함하며, 동일한 Animator 컨트롤러에서 두 가지 유형을 모두 포함하지는 않습니다.
두 번째 방법은 모든 애니메이션 클립을 동일한 유형으로 업데이트하여 단일 Animator 컨트롤러에서 모두 관리되도록 하는 것입니다. 이렇게 하려면 스프라이트 렌더러의 스프라이트를 애니메이션화하는 모든 클립을, Sprite Resolver의 스프라이트 해시를 애니메이션화하는 클립으로 전환하거나 그 반대로 전환합니다.