Unity에서 런타임 중 스프인 오브젝트의 스킨을 바꿔야 하는 경우가 있다.
SkeletonAnimation.Skeleton에 SetSkin이라는 함수가 있길래, 쉽게 변경이 가능한 줄 알았는데,
잘 변경 되지 않았다. Skeleton.Update()함수도 해봤는데 먹히지 않았다.
뭐가 문제지? 라고 생각하고 검색해 본 결과
SetSkin함수 호출 후, SetSlotsToSetupPose()라는 함수를 호출해야 한다고 한다.
public void SetSkin(string skin_name)
{
m_animation.Skeleton.SetSkin(skin_name);
m_animation.Skeleton.SetSlotsToSetupPose();
}
위 코드처럼 해보면 깔끔하게 잘 변경된다.
'게임을 만들자 > Spine' 카테고리의 다른 글
Unity, Spine SkeletonDataAsset change in Runtime (0) | 2020.10.07 |
---|---|
Spine, 포토샵 To Spine (0) | 2020.03.20 |