활성 스킨에 따라 머티리얼 및 텍스처 자산의 편안한 온 디맨드로드 및 언로드를 지원하기위한 발행 티켓이 있습니다.
https://github.com/EsotericSoftware/spine-runtimes/issues/1890.
그러면 스킨 자산을 훨씬 쉽게 다운로드하고 연결할 수 있습니다. 현재 불행히도 수동 코딩이 필요합니다.
불행히도 완전 자동 솔루션은 빠른 구현을 몇 줄로 설명하기에 충분하지 않습니다. 이 기능을 직접 구현하고 공식 구현을 기다리지 않기로 결정했다면 스킨 설정 및로드에 간접 레이어 (예 : 새로운 'SkinLoader'구성 요소 클래스)를 추가하는 것이 좋습니다. 준비로 SkeletonDataAsset 참조 캐스케이드에서 기본 스킨의 자산을 제외한 모든 자산을 제거합니다. 그런 다음skinLoader.SetSkin (targetSkeletonAnimation, "skinname")
에서 스킨을 설정하면 먼저로드되었는지 확인하고 요청시로드하고 참조를 연결 한 다음targetSkeletonAnimation.Skeleton.SetSkin (skinname)
을 호출합니다.
We have an issue ticket for supporting comfortable on-demand loading and unloading of material and texture assets according to active skins:
https://github.com/EsotericSoftware/spine-runtimes/issues/1890.
This will then make downloading and linking any skin assets much easier. Currently there is manual coding required unfortunately.
Unfortunately a fully automatic solution is not trivial enough to just describe a quick implementation in a few lines. If you decide to implement this feature yourself and not wait for the official implementation, I would recommend adding one layer of indirection (e.g. a new SkinLoader
component class) around setting and loading any skin. As a preparation you would then remove all but the default skin's assets from any SkeletonDataAsset reference cascades. Then you would set your skin at skinLoader.SetSkin(targetSkeletonAnimation, "skinname")
which first checks if it's loaded, loads it on demand and hooks up any references, and then calls targetSkeletonAnimation.Skeleton.SetSkin(skinname)
.