Spine 애니메이션을 Unity에서 사용할 때 그 핵심을 담당하는 Spine2dController
클래스에 대해 설명드리겠습니다.
이 클래스는 Spine 캐릭터 애니메이션의 기본 제어 기능을 제공하는 베이스 클래스입니다.
따라서 실제 게임에서는 이 클래스를 상속받아 다양한 캐릭터 애니메이션 로직을 구현하게 됩니다.
📚 상속 구조
Spine2dController
는 MonoBehaviour
를 상속한 클래스이며, 게임 오브젝트에 직접 붙는 형태로 작동합니다.
MonoBehaviour
└── Spine2dController
└── CharacterAnimationControllerSpine
즉, Spine 애니메이션을 사용하는 캐릭터들은 Spine2dController
의 기능을 기반으로 애니메이션을 제어합니다.
🧠 주요 역할
Spine2dController
클래스는 다음과 같은 Spine 애니메이션 관련 기능을 처리합니다:
PlayAnimation()
메서드를 통해 Spine 애니메이션을 재생합니다.Spine의 Timeline 상에 삽입된 attack
, sound
, shake
등의 이벤트를 감지하고,
이를 메서드로 연결하여 게임 로직에 반영합니다.
예를 들어 OnSpineEventAttack()
은 실제 공격 타이밍에 데미지를 적용할 수 있도록 처리됩니다.
ChangeImageInSlot()
및 RemoveImageInSlot()
을 통해 Spine의 슬롯 이미지 교체를 지원합니다.IsPlaying()
을 통해 애니메이션이 재생 중인지 확인 가능합니다.GetWidth()
, GetHeight()
로 캐릭터의 크기를 계산할 수 있고, SetColor()
를 통해 캐릭터 색상도 변경할 수 있습니다.🔧 주요 메서드 정리
PlayAnimation(string name, bool loop, float timeScale)
→ 애니메이션 재생
HandleEvent(...)
→ Spine 이벤트(attack
, sound
, shake
) 핸들링