From afd8272dc6f3858fee5d0d14a00750d9be4fb57e Mon Sep 17 00:00:00 2001 From: John Date: Wed, 28 Jun 2017 18:09:15 +0800 Subject: [PATCH] [unity] Fix ragdoll2D parts being kinematic. --- .../spine-unity/Modules/Ragdoll/SkeletonRagdoll2D.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/spine-unity/Assets/spine-unity/Modules/Ragdoll/SkeletonRagdoll2D.cs b/spine-unity/Assets/spine-unity/Modules/Ragdoll/SkeletonRagdoll2D.cs index 9d0695a3e..3558ee1d7 100644 --- a/spine-unity/Assets/spine-unity/Modules/Ragdoll/SkeletonRagdoll2D.cs +++ b/spine-unity/Assets/spine-unity/Modules/Ragdoll/SkeletonRagdoll2D.cs @@ -288,7 +288,7 @@ namespace Spine.Unity.Modules { t.localScale = new Vector3(b.WorldScaleX, b.WorldScaleY, 0); // MITCH: You left "todo: proper ragdoll branching" - var colliders = AttachBoundingBoxRagdollColliders(b, boneGameObject, skeleton); + var colliders = AttachBoundingBoxRagdollColliders(b, boneGameObject, skeleton, this.gravityScale); if (colliders.Count == 0) { float length = b.data.length; if (length == 0) { @@ -300,7 +300,9 @@ namespace Spine.Unity.Modules { box.offset = new Vector2(length * 0.5f, 0); // box.center in UNITY_4 } } - var rb = boneGameObject.AddComponent(); + + var rb = boneGameObject.GetComponent(); + if (rb == null) rb = boneGameObject.AddComponent(); rb.gravityScale = this.gravityScale; foreach (Bone child in b.Children) @@ -354,7 +356,7 @@ namespace Spine.Unity.Modules { } } - static List AttachBoundingBoxRagdollColliders (Bone b, GameObject go, Skeleton skeleton) { + static List AttachBoundingBoxRagdollColliders (Bone b, GameObject go, Skeleton skeleton, float gravityScale) { const string AttachmentNameMarker = "ragdoll"; var colliders = new List(); var skin = skeleton.Skin ?? skeleton.Data.DefaultSkin; @@ -369,7 +371,7 @@ namespace Spine.Unity.Modules { if (!a.Name.ToLower().Contains(AttachmentNameMarker)) continue; - var bbCollider = SkeletonUtility.AddBoundingBoxAsComponent(bbAttachment, s, go, false); + var bbCollider = SkeletonUtility.AddBoundingBoxAsComponent(bbAttachment, s, go, isTrigger: false, isKinematic: false, gravityScale: gravityScale); colliders.Add(bbCollider); } }