Spine2D 애니메이션 멈춤 또는 다시 실행하기
안녕하세요. Base Of Coding입니다.
요즘 새로운 프로젝트를 진행중이라.. Spine2D 애니메이션을 사용하여 프로젝트를 진행중이네요.
( 제가 애니메이팅을 하진 않습니다...^^ )
하지만 Unity 관련 SDK를 사용하면서, 친절한 API 문서가 전혀 보이질 않더라구요.
샘플을 보면서 분석을 해야하는 상황인데, 애니메이션을 멈추거나 다시 실행하는 방법을 공유하고자 글을 오랜만에 올려봅니다!
일단 이 글을 보시는 분이시라면, SDK를 다운받으셔서 유니티에 넣으셨다고 생각을 하겠습니다.
아직 SDK를 다운받지 않으셨다면, 오른쪽에 해당 링크 또는 밑에 링크를 클릭해주세요. -> 클릭
EsotericSoftware/spine-runtimes
2D skeletal animation runtimes for Spine. Contribute to EsotericSoftware/spine-runtimes development by creating an account on GitHub.
github.com
스파인은, 3D 애니메이팅은 3D MAX 또는 Maya 프로그램으로 한다면, 2D 애니메이팅은 스파인으로 하신다고 생각하시면 될 것 같습니다.
예전과는 다르게 요즘은 아틀라스와 Json파일 .Atlas 파일만 있으면, 저장한 애니메이션을 사용할 수 있으니 편리하고 좋아진 듯 합니다.
그렇다면, 일단 스파인 애니메이션 재생을 어떻게 일시정지 시키고 다시 시작하느냐.
스파인 사용 방법을 모르시면 밑에 문서파일을 읽어보시면서 애니메이션을 만들어주세요.
Spine-Unity Runtime Documentation
Forums | GitHub | Additional documentation Integrating an official Spine Runtime into your applications requires a valid Spine license, though you are welcome to use the Spine Runtimes for evaluation purposes. Adding spine-unity into your Unity project: Do
ko.esotericsoftware.com
애니메이션을 만들어주셨다면, SkeletonAnimation 컴포넌트가 보이실겁니다. 해당 컴포넌트를 이용해서 애니메이션을 제어해야 하는데요.
간단하게 스크립트를 하나 작성해서 아무 게임 오브젝트에 붙입니다.
( 직접 작성하지 않고, 감으로 작성한거라 틀린 부분이 있으시면 수정해주세요. )
public class SpineControl : MonoBehaviour
{
public SkeletonAnimation anim;
void Awake()
{
anim.timeScale = 0; // 애니메이션의 타임 스케일을 0으로 줄여서 애니메이션을 정지시킨다.
StartCoroutine(AnimStart()); // 2초후에 애니메이션을 다시 실행시킨다.
}
private IEnumerator AnimStart()
{
yield return new WaitForSeconds(2.0f);
anim.timeScale = 1;
}
}
그리고, anim에 해당 스크립트를 붙인 오브젝트에 SkeletonAnimation 컴포넌트가 있는 애니메이션을 넣어주세요.
그러면, 애니메이션이 중지가 된 상태에서 2초후에 실행이 되게 될 것입니다.
지금까지 스파인2D 애니메이션을 일시정지 -> 실행 시키는 방법에 대해서 알아봤습니다.
점점 알게 되는 부분들이 있으시면 공유하도록 할테니 많은 관심 부탁드립니다! 감사합니다!