- Home /
Unity3D enemy AI ragdoll
Hello guys, I got a problem with my enemy AI / ragdoll, when the enemy AI dies, he gets replaced by a prefab(ragdoll) and that works perfectly except one thing, the ragdoll spawns in the T-position and how would I do to fix that so the ragdoll spawns in the exact position as the enemy AI.
Ima post my damage/spawn Ragdoll script below
{
public GameObject RagDoll;
public float RobotHealth = 100f;
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Bullet")
{
audio.Play();
RobotHealth -= 20f;
if(RobotHealth == 0)
{
GameObject go = Instantiate(RagDoll, gameObject.transform.position, gameObject.transform.rotation) as GameObject;
Destroy(gameObject);
}
}
}
}
The AI script I'm using is from AronGranberg (The A* AI, the free version).
Answer by Kavorka · Apr 15, 2014 at 10:03 AM
To get a nice transition you also need to transfer momentum to the ragdoll. Try this webpler and see if it is what you want.
Answer by AlucardJay · Apr 14, 2014 at 05:45 PM
This is a method from the 3DBuzz Third Person tutorial :
// * in the method that creates/enables the ragdoll *
// we are looking for our skeleton's root node e.g. pelvis (mine is Bip001)
var characterPelvis = transform.FindChild("Bip001");
var ragdollPelvis = ragdoll.transform.FindChild("Bip001");
// match the ragdoll's skeleton to the character skeleton
MatchChildrenTransforms(characterPelvis, ragdollPelvis);
// recursive method to position and rotate all ragdoll limbs to player limbs
void MatchChildrenTransforms(Transform source, Transform target)
{
// march through the skeleton hierarchy matching joint rotations
if (source.childCount > 0)
{
foreach(Transform sourceTransform in source.transform)
{
// find the relative body part in the ragdoll
Transform targetTransform = target.Find(sourceTransform.name);
if (targetTransform != null)
{
// match position and rotation
targetTransform.localPosition = sourceTransform.localPosition;
targetTransform.localRotation = sourceTransform.localRotation;
// recursion
// position and rotate each child of this body part
MatchChildrenTransforms(sourceTransform, targetTransform);
}
}
}
}
Your answer
Follow this Question
Related Questions
Character Prefab Break (Ragdoll) 0 Answers
Laying prefabs end to end 1 Answer
how do you assign a root for ragdoll 1 Answer
Ragdoll On Collison 1 Answer
Can I exclude a bone chain from animation so it can ragdoll? 1 Answer