- Home /
Everytime my player gets hit by my explosion, the game becomes unresponsive and then crashes.
I think I must be overloading it, I'm really not sure. Explosion Script:
void Explode () {
exploded = true;
GameObject _particle = Instantiate (particle, transform.position, Quaternion.identity);
Collider[] cols = Physics.OverlapSphere (transform.position, Range);
foreach (var col in cols){
Ray checkray = new Ray (transform.position, col.transform.position - transform.position);
RaycastHit checkhit;
if (Physics.Raycast (checkray, out checkhit, Range)) {
if (checkhit.collider.gameObject == col.gameObject) {
EffectDefinition _effect = Eeffect;
float proximity = (transform.position - col.transform.position).magnitude;
float D_effect = 1 - (proximity / Range);
_effect.Health *= D_effect;
object[] effectobj = new object[4];
effectobj [0] = _effect;
effectobj [1] = _effect.EffectTime;
effectobj [2] = _effect.EffectCount;
effectobj [3] = new Vector3(0,0,0);
col.SendMessageUpwards ("ApplyEffect", effectobj, SendMessageOptions.DontRequireReceiver);
if (col.gameObject.GetComponent
()) {
col.attachedRigidbody.AddExplosionForce (force, transform.position, Range, 0f, ForceMode.Impulse);
}
}
}
}
Destroy (_particle, _particle.GetComponent
().main.startLifetime.constant);
Destroy(gameObject);
}
Player Script:
public void ApplyEffect (object[] effectobj) {
EffectDefinition effect = (EffectDefinition)effectobj [0];
addedSpeedMult = effect.SpeedMult;
addedJumpMult = effect.JumpMult;
HP += effect.Health;
rb.AddForce ((Vector3)effectobj[3], ForceMode.Impulse);
int EffectCount = (int)effectobj [2];
EffectCount -= 1;
effectobj [2] = EffectCount;
StartCoroutine (EndEffect(effectobj));
}
IEnumerator EndEffect (object[] effectobj) {
yield return new WaitForSeconds ((float)effectobj[1]);
if ((int)effectobj [2] > 0) {
ApplyEffect (effectobj);
} else {
ActiveEffect = false;
}
while (true) {
ActiveEffect = true;
}
}
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220612093802im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
space shooting: same exolosions 0 Answers
Vector3 randomize spawnpoints 1 Answer
Add Force At Player 0 Answers
Problem with AddExplosionForce / Exploding 1 Answer
Another Gravity Question: Player suddenly flies upward 1 Answer