Пример #1
0
    public void StopDamage(IDamagable damagableObj)
    {
        int id = damagableObj.GetInstanceID();

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