public void StopDamage(IDamagable damagableObj) { int id = damagableObj.GetInstanceID(); if (PeriodicDamageCoroutines.ContainsKey(id)) { owner.GetComponent <MonoBehaviour>().StopCoroutine(PeriodicDamageCoroutines[id]); } }
public void DoDamage(IDamagable damagableObj) { // Создаем для повреждаемого объекта корутину, которая будет с определенной периодичностью его дамажить // И сохраняем ее в словарь под уникальным ID объекта. Таким образом, мы сможем обрабатывать периодический // урон сразу по нескольким объектам, а когда коллизия с одним из них прекратится, сможем легко найти и // остановить нужную корутину. PeriodicDamageCoroutines[damagableObj.GetInstanceID()] = owner.StartCoroutine( DoPeriodicDamage( damagableObj, damagingObj )); }