tuhai993

Hello, i want to change all item wearing at my character by other Unity sprite(like a shop). i just found script Mix-n-Match example and it work well with skeletonAnimation. But when i change it with Skeletongraphic it show issue like this(the gun not show right). Can someone help me to do it right
here are my code :
public class MixAndMatchExample : MonoBehaviour {

[SpineSkin] public string templateSkinName = "template";
public Material sourceMaterial;

[Header("Gun")]
public Sprite gunSprite;
[SpineSlot] public string gunSlot;
[SpineAttachment(slotField:"gunSlot", skinField:"templateSkinName")] public string gunKey = "gun";

[ContextMenu("Combine")]
void Combine () {
SkeletonGraphic skeletonAnimation = GetComponent<SkeletonGraphic>();
Skeleton skeleton = skeletonAnimation.Skeleton;
SkeletonData skeletonData = skeleton.Data;

// Get the template skin.
Skin templateSkin = skeletonData.FindSkin(templateSkinName);
// Prepare the custom skin.
Skin currentEquipsSkin = new Skin("my custom skin");

// Get the gun
int gunSlotIndex = skeleton.FindSlotIndex(gunSlot);
Attachment templateGun = templateSkin.GetAttachment(gunSlotIndex, gunKey);

// Clone the template gun Attachment, and map the sprite onto it.
// This sample uses the sprite and material set in the inspector.
Attachment newGun = templateGun.GetRemappedClone(gunSprite, sourceMaterial); // This has some optional parameters. See below.
//Attachment newGun = templateGun.GetRemappedClone(gunSprite, sourceMaterial, premultiplyAlpha: true, cloneMeshAsLinked: true, useOriginalRegionSize: false); // (Full signature.)

// Add the gun to your new custom skin.
if (newGun != null) currentEquipsSkin.SetAttachment(gunSlotIndex, gunKey, newGun);

// Set and apply the Skin to the skeleton.
skeleton.SetSkin(currentEquipsSkin);
skeleton.SetSlotsToSetupPose();
skeletonAnimation.Update(0);
}
}
У вас нет необходимых прав для просмотра вложений в этом сообщении.
tuhai993
  • Сообщения: 11

Harald

SkeletonGraphic by default comes with the limitation of a single atlas texture.

Recently we have added support for automatically using multiple CanvasRenderers to bypass this limitation. You need to enable it via Advanced - Multiple CanvasRenderers as described here:
spine-unity Runtime Documentation: Parameters
Аватара пользователя
Harald

Harri
  • Сообщения: 1976

tuhai993

Harald писал(а):SkeletonGraphic by default comes with the limitation of a single atlas texture.

Recently we have added support for automatically using multiple CanvasRenderers to bypass this limitation. You need to enable it via Advanced - Multiple CanvasRenderers as described here:
spine-unity Runtime Documentation: Parameters
thanks so much for supporting us. after download the last spine-unity package and enable Advanced - Multiple CanvasRenderers it work well
tuhai993
  • Сообщения: 11

Harald

Glad to hear, thanks for getting back to us!
Аватара пользователя
Harald

Harri
  • Сообщения: 1976


Вернуться в Unity