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
Unity, Spine SetSkin 사용  (0) 2020.09.20
Spine, 포토샵 To Spine  (0) 2020.03.20
이세계 용병 온라인

댓글을 달아 주세요