public void Initialize(bool overwrite = true) { if (overwrite || attachment == null) { // Get the applyPMA value. var skeletonComponent = GetComponent <ISkeletonComponent>(); var skeletonRenderer = skeletonComponent as SkeletonRenderer; if (skeletonRenderer != null) { this.applyPMA = skeletonRenderer.pmaVertexColors; } else { var skeletonGraphic = skeletonComponent as SkeletonGraphic; if (skeletonGraphic != null) { this.applyPMA = skeletonGraphic.MeshGenerator.settings.pmaVertexColors; } } // Subscribe to UpdateComplete to override animation keys. if (overrideAnimation) { var animatedSkeleton = skeletonComponent as ISkeletonAnimation; if (animatedSkeleton != null) { animatedSkeleton.UpdateComplete -= AnimationOverrideSpriteAttach; animatedSkeleton.UpdateComplete += AnimationOverrideSpriteAttach; } } spineSlot = spineSlot ?? skeletonComponent.Skeleton.FindSlot(slot); Shader attachmentShader = applyPMA ? Shader.Find(DefaultPMAShader) : Shader.Find(DefaultStraightAlphaShader); attachment = applyPMA ? sprite.ToRegionAttachmentPMAClone(attachmentShader) : sprite.ToRegionAttachment(SpriteAttacher.GetPageFor(sprite.texture, attachmentShader)); } }
public void Attach() { var skeletonComponent = GetComponent <ISkeletonComponent>(); var skeletonRenderer = skeletonComponent as SkeletonRenderer; if (skeletonRenderer != null) { this.applyPMA = skeletonRenderer.pmaVertexColors; } else { var skeletonGraphic = skeletonComponent as SkeletonGraphic; if (skeletonGraphic != null) { this.applyPMA = skeletonGraphic.MeshGenerator.settings.pmaVertexColors; } } Shader attachmentShader = applyPMA ? Shader.Find(DefaultPMAShader) : Shader.Find(DefaultStraightAlphaShader); attachment = applyPMA ? sprite.ToRegionAttachmentPMAClone(attachmentShader) : sprite.ToRegionAttachment(SpriteAttacher.GetPageFor(sprite.texture, attachmentShader)); skeletonComponent.Skeleton.FindSlot(slot).Attachment = attachment; }