Spine에서 Skeleton Animation이 UI보다 최적화 면에서 더 유리합니다.
Skeleton Animation의 장점:
Spine Graphic (SkeletonGraphic)의 특징:
게임 내 캐릭터/오브젝트: SkeletonAnimation 사용
UI 요소 (체력바 위 아이콘 등): SkeletonGraphic 사용
단순 성능만 고려한다면 SkeletonAnimation이 항상 더 최적화되어 있습니다.
1. Canvas Rebuilding (재구축)
UI 요소가 변경될 때마다:
- 전체 Canvas의 메쉬를 다시 계산
- 레이아웃을 다시 배치
- Spine 애니메이션은 매 프레임 변경됨 → 매 프레임 Canvas 재구축!
2. Raycast Target (클릭 감지)
3. Batching 방식 차이
Skeleton Animation:
Sprite A + Sprite B + Sprite C → 1 드로우콜
Skeleton Graphic:
Button + Text + Spine + Image → Canvas가 모두 합침
→ 하지만 재질/텍스처 달라지면 다시 분리
→ Canvas 전체를 관리하는 오버헤드 추가
4. RectTransform 계산
UI 시스템 전체를 관리해야 해서 무거운 겁니다!
"마우스/터치가 UI를 클릭했는지 체크하는 계산"
매 프레임마다:
1. 마우스 위치에서 광선(Ray)을 쏨
2. 모든 UI 요소를 순회하며 "이 UI가 맞았나?" 체크
3. 맞은 UI 찾으면 클릭 이벤트 발생
Canvas에 UI가 100개 있으면:
- 매 프레임 100개 전부 체크
- Spine Graphic도 체크 대상에 포함
- 애니메이션 중이어도 계속 체크
Skeleton Animation:
- 클릭 체크 안 함 (UI 아니니까)
- 필요하면 Collider2D로 직접 구현
Canvas 안에:
[버튼] [텍스트] [Spine캐릭터] [이미지] [슬라이더]
마우스 클릭 시:
"버튼 맞았나? X"
"텍스트 맞았나? X"
"Spine 맞았나? X"
"이미지 맞았나? O" ← 찾았다!
Raycast = "광선 쏴서 뭐 맞았나 확인"
UI는 이걸 매 프레임 자동으로 하니까 무겁습니다!