- Home /
I can't add force to a rigidbody with a NavMeshAgent also attached?
Hi, I'm working on a relatively simple game in which the player must fight enemies. Anyway, I've been trying to add grenades that the player can throw on a button press, instantiating a grenade prefab, which will explode after a few seconds. I also want the grenade to damage and push the enemies within its radius. The damage works fine, but AddExplosionForce(), which I am using to push them back, doesn't seem to have any affect on the enemies. I have previously added a print() statement, and the code is being called correctly, and i'm not getting any errors.
Does anyone know why the enemy rigidbodies are not affected when I add force to them?
Here is the code attached to the grenade that calls the function attached to the enemy:
void FixedUpdate ()
{
Vector3 explosionPos = transform.position;
explodeTimer += Time.deltaTime;
if (explodeTimer >= timeToExplode)
{
explodeTimer = 0f;
audio.Play ();
explosionParticles.transform.position = transform.position;
explosionParticles.Play ();
Collider[] hitColliders = Physics.OverlapSphere(grenadeCollider.center, grenadeCollider.radius);
foreach (Collider c in hitColliders)
{
string hitTag = c.gameObject.tag;
if (hitTag == "Enemy")
{
EnemyHealth enemyHealth = c.GetComponent <EnemyHealth> ();
enemyHealth.TakeDamage (grenadeDamage, false, new Vector3 (0, 0, 0));
EnemyMovement enemyMovement = c.GetComponent<EnemyMovement> ();
enemyMovement.ExplodeMove(explosionPos);
}
}
Destroy (grenadeBody);
Destroy (gameObject, 2f);
}
}
and here is the function attached to the enemy:
public void ExplodeMove(Vector3 pos)
{
nav.Stop (true);
rb.isKinematic = false;
rb.AddForce (new Vector3 (0, 5, 0), ForceMode.Impulse);
rb.AddExplosionForce (100f, pos, 10,2f,ForceMode.Impulse);
}
Thanks
Your answer
Follow this Question
Related Questions
[C#]rigidbody.addExplosionForce,Help? 2 Answers
NavMeshAgent sliding/accelerating knockback, not teleport 1 Answer
Knockback not working properly 1 Answer
Make navmesh agent fall from ledge 1 Answer