Question by
DarkFlameDX · Aug 27, 2016 at 07:23 AM ·
scripting problemunity5
question about optimization script damage
Hello! I created damage to the script , but I doubt very much in its " ease " for performance ... what advise ? its essence : when hit by a physical object , a sphere - Collider appears and puts all the enemies in the array , and each gets a unique damage , depending on the distance from the explosion.
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class SplashAttack : MonoBehaviour {
public float radius = 10f, multiply = 1.0f, damage = 5.0f, aa = 0.1f;
public List<damageSizeData> damageSize;
Collider[] hitUnits;
void OnCollisionEnter(Collision collision)
{
StartCoroutine(ExplosionDamage());
}
IEnumerator ExplosionDamage()
{
hitUnits = Physics.OverlapSphere(transform.position, radius);
for (int i = 0; i < hitUnits.Length; i++)
if (hitUnits[i].tag == "Enemy" || hitUnits[i].tag == "Player")
{
foreach (damageSizeData dist in damageSize)
if (Vector3.Distance(hitUnits[i].transform.position, transform.position) >= dist.distance)
damage = dist.damage;
hitUnits[i].gameObject.GetComponent<Warior>().GetMySquard().AttacktoMe(damage, aa, multiply);
}
Destroy(gameObject);
yield break;
}
[System.Serializable]
public struct damageSizeData
{
public float distance;
public float damage;
}
}
Comment