mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
setSkin with no previous skin attaches setup pose attachments.
No more API gotcha, setSlotsToSetupPose is not needed.
This commit is contained in:
parent
68238d9032
commit
cee7e3f336
@ -203,10 +203,22 @@ public class Skeleton {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Sets the skin used to look up attachments not found in the {@link SkeletonData#getDefaultSkin() default skin}. Attachments
|
/** Sets the skin used to look up attachments not found in the {@link SkeletonData#getDefaultSkin() default skin}. Attachments
|
||||||
* from the new skin are attached if the corresponding attachment from the old skin was attached.
|
* from the new skin are attached if the corresponding attachment from the old skin was attached. If there was no old skin,
|
||||||
|
* each slot's setup mode attachment is attached from the new skin.
|
||||||
* @param newSkin May be null. */
|
* @param newSkin May be null. */
|
||||||
public void setSkin (Skin newSkin) {
|
public void setSkin (Skin newSkin) {
|
||||||
if (skin != null && newSkin != null) newSkin.attachAll(this, skin);
|
if (skin == null) {
|
||||||
|
Array<Slot> slots = this.slots;
|
||||||
|
for (int i = 0, n = slots.size; i < n; i++) {
|
||||||
|
Slot slot = slots.get(i);
|
||||||
|
String name = slot.data.attachmentName;
|
||||||
|
if (name != null) {
|
||||||
|
Attachment attachment = newSkin.getAttachment(i, name);
|
||||||
|
if (attachment != null) slot.setAttachment(attachment);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (newSkin != null) //
|
||||||
|
newSkin.attachAll(this, skin);
|
||||||
skin = newSkin;
|
skin = newSkin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -163,7 +163,6 @@ public class SkeletonTest extends ApplicationAdapter {
|
|||||||
// Configure skeleton from UI.
|
// Configure skeleton from UI.
|
||||||
|
|
||||||
skeleton.setSkin(ui.skinList.getSelected());
|
skeleton.setSkin(ui.skinList.getSelected());
|
||||||
skeleton.setSlotsToSetupPose();
|
|
||||||
state.setAnimation(0, ui.animationList.getSelected(), ui.loopCheckbox.isChecked());
|
state.setAnimation(0, ui.animationList.getSelected(), ui.loopCheckbox.isChecked());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user