kenjizenki

public SkeletonGraphic SG;
Skin SkinSG = new Skin("Base");
SkinSG.AddSkin(SG.Skeleton.Data.FindSkin("Test"));
SG.Skeleton.SetSkin(SkinSG);

このようなスクリプトを作成しました。
エラーなどはないのですがスキン反映されないことがあるようです。

SpineUnity:spine-unity-4.0-2021-10-02
Spine:
Unity:2020.3.19f1

インスペクターからSkinを直接反映させると出てくるのですが、スクリプトで対応してもできないようです。
問い合わせから該当プロジェクトお送りします。
ご確認お願いします
사용자 아바타
kenjizenki
  • 전체글: 54

Misaki

こんにちは、ご質問の件ですが、スキンが反映されないのはsetSkinの後にsetSlotsToSetupPose();を記述されていないからかと思います。
setSkinのAPIリファレンスに説明がありますが、スキンを変更した後に実際にアタッチメントの表示をリセットするにはsetSlotsToSetupPose();を呼び出す必要があります。
http://esotericsoftware.com/spine-api-reference#Skeleton-setSkin

具体的には、現在のコードの最後に
SG.Skeleton.SetSlotsToSetupPose();
と追加していただければ解決すると思います。

ちょうど、なぜsetSlotsToSetupPose();を使用しないといけないのかという質問と回答の投稿がありますのでこちらも合わせて参考にしていただければ幸いです。
http://esotericsoftware.com/forum/How-to-properly-set-update-a-skin-16109?p=70484&hilit=setSlotsToSetupPose+%3B#p70484
사용자 아바타
Misaki

Misaki
  • 전체글: 236

kenjizenki

かしこまりました!
ご回答ありがとうございます!
さっそく修正してみたいと思います、助かります!
사용자 아바타
kenjizenki
  • 전체글: 54

Misaki

参考になったようで良かったです!また何かありましたらお気軽にご投稿ください :)
사용자 아바타
Misaki

Misaki
  • 전체글: 236


다시 돌아감: 日本のSpine ユーザー