- Home /
 
 
               Question by 
               jordanblythe104 · Feb 25, 2013 at 12:27 PM · 
                forcebulletragdolladd  
              
 
              Bullet add force to ragdoll help
I have the enemy set up so that if its health is set to 0, it will instantiate a ragdoll. I want the ragdoll to be effected by the bullets force. I have the bullet set up to add force to rigidbodies but obviously the bullet is destroying the enemys gameobject and itself when it kills the enemy. How would I go about getting this to work?
Here is the enemy script :
 var target : Transform;
 private var navComponent : NavMeshAgent;
 var life : float = 100;
 var ragdoll : GameObject;
 
  
 function Damage(damage:float)
 {
     life-=damage;
     
     if (life <= 0)
         PlayerDead ();
 }
 
 function Update ()
 {
    navComponent = this.transform.GetComponent(NavMeshAgent);
    navComponent.SetDestination(target.position);
 }
 
 function PlayerDead ()
 {
    Destroy(gameObject);
    gameObject.SetActiveRecursively(false);
    if (ragdoll) 
       {
          Instantiate(ragdoll, transform.position, transform.rotation);
       }
 }
 
               and here is the bullet script :
 var speed : float = 500;
 var randomAngle : float = 0;
 var lifeTime : float = 3;
 var bulletGravity : float = 9.8;
 var floatInFrontOfWall : float = 0.001;
 var decalHitWall : GameObject;
 
 @HideInInspector
 var moveDirection : Vector3;
 @HideInInspector
 var shortestSoFar : float;
 
 @HideInInspector
 var instantiatePoint : Vector3;
 @HideInInspector
 var instantiateRotation : Quaternion;
 @HideInInspector
 var foundHit : boolean = false;
 @HideInInspector
 var parentToAdd : Transform;
 var force = 500;
 var damage = 50;
 
 
 function Awake ()
 {
    transform.Rotate((Random.value * 2 * randomAngle) - randomAngle, 0, Random.value * 360);
    moveDirection = transform.forward * speed;
    
    shortestSoFar = Mathf.Infinity;
    
    foundHit = false;
 }
 
 
 
 function Update ()
 {
    transform.rotation = Quaternion.LookRotation (moveDirection);
    var hits : RaycastHit [];
    hits = Physics.RaycastAll(transform.position, transform.forward, speed * Time.deltaTime);
    for (var hit in hits)
     {
        if (hit.transform)
        {
            if (Vector3.Distance(transform.position, hit.point) < shortestSoFar) {
            instantiatePoint = hit.point + (hit.normal * (floatInFrontOfWall + Random.Range(0, 0.01)));
            instantiateRotation = Quaternion.LookRotation(hit.normal);
            parentToAdd = hit.transform;
            shortestSoFar = Vector3.Distance(transform.position, hit.point);
            foundHit = (true); }
        }
       if (hit.rigidbody){ // apply impact if the target is a rigidbody:
       hit.rigidbody.AddForce(transform.forward * force);
       }
       
       if (hit.transform.tag =="Enemy")
         {
           hit.transform.SendMessage("Damage", damage, SendMessageOptions.DontRequireReceiver);
           
         }
     
     // apply damage (ApplyDamage is an enemy function):
     }
     
     if (foundHit)
     {
        var spawnedBulletHole : GameObject = Instantiate(decalHitWall, instantiatePoint, instantiateRotation);
        if (parentToAdd)
            spawnedBulletHole.transform.parent = parentToAdd;
        Destroy(gameObject);
     }
     
     transform.position += moveDirection * Time.deltaTime;
     moveDirection.y -= bulletGravity * Time.deltaTime;
     
     lifeTime -= Time.deltaTime;
     if (lifeTime < 0)
         Destroy(gameObject);
 }
 
              
               Comment
              
 
               
               
               Best Answer 
              
 
              Answer by jordanblythe104 · Feb 26, 2013 at 02:43 PM
Fixed it:
 if (hit.transform.tag =="Enemy")
         {
           hit.transform.SendMessage("Damage", damage, SendMessageOptions.DontRequireReceiver);
           hit.rigidbody.AddForce(transform.forward * force);
           foundHit = false;
         }
 
              Your answer
 
             Follow this Question
Related Questions
Multiple Cars not working 1 Answer
ragdoll force trouble 0 Answers
2d ragdoll, where to start? 1 Answer
Need Help with Shooting Script c# 5 Answers
The Drunk Walk 1 Answer