[unity] BoundingBoxFollower also uses active skin.

This commit is contained in:
John 2017-07-04 08:57:38 +08:00 committed by GitHub
parent dac38e5843
commit 263c6278e2

View File

@ -112,27 +112,10 @@ namespace Spine.Unity {
}
if (this.gameObject.activeInHierarchy) {
foreach (var skin in skeleton.Data.Skins) {
var attachmentNames = new List<string>();
skin.FindNamesForSlot(slotIndex, attachmentNames);
foreach (var skin in skeleton.Data.Skins)
AddSkin(skin, skeleton, slotIndex);
foreach (var skinKey in attachmentNames) {
var attachment = skin.GetAttachment(slotIndex, skinKey);
var boundingBoxAttachment = attachment as BoundingBoxAttachment;
if (BoundingBoxFollower.DebugMessages && attachment != null && boundingBoxAttachment == null)
Debug.Log("BoundingBoxFollower tried to follow a slot that contains non-boundingbox attachments: " + slotName);
if (boundingBoxAttachment != null) {
var bbCollider = SkeletonUtility.AddBoundingBoxAsComponent(boundingBoxAttachment, slot, gameObject, isTrigger);
bbCollider.enabled = false;
bbCollider.hideFlags = HideFlags.NotEditable;
bbCollider.isTrigger = IsTrigger;
colliderTable.Add(boundingBoxAttachment, bbCollider);
nameTable.Add(boundingBoxAttachment, skinKey);
}
}
}
AddSkin(skeleton.skin, skeleton, slotIndex);
}
if (BoundingBoxFollower.DebugMessages) {
@ -146,6 +129,28 @@ namespace Spine.Unity {
}
}
void AddSkin (Skin skin, Skeleton skeleton, int slotIndex) {
var attachmentNames = new List<string>();
skin.FindNamesForSlot(slotIndex, attachmentNames);
foreach (var skinKey in attachmentNames) {
var attachment = skin.GetAttachment(slotIndex, skinKey);
var boundingBoxAttachment = attachment as BoundingBoxAttachment;
if (BoundingBoxFollower.DebugMessages && attachment != null && boundingBoxAttachment == null)
Debug.Log("BoundingBoxFollower tried to follow a slot that contains non-boundingbox attachments: " + slotName);
if (boundingBoxAttachment != null) {
var bbCollider = SkeletonUtility.AddBoundingBoxAsComponent(boundingBoxAttachment, slot, gameObject, isTrigger);
bbCollider.enabled = false;
bbCollider.hideFlags = HideFlags.NotEditable;
bbCollider.isTrigger = IsTrigger;
colliderTable.Add(boundingBoxAttachment, bbCollider);
nameTable.Add(boundingBoxAttachment, skinKey);
}
}
}
void OnDisable () {
if (clearStateOnDisable)
ClearState();