// Called last frame that ability is used void OnAbilityUp(Weather ability) { // Particles and sounds _spellEffects.StopParticleEffect(ability); _playerSounds.StopSpell(ability); AbilityEvent e = CreateAbilityEvent(); Physics.SyncTransforms(); //not certain if need this, but was recomended to keep track of other objects... Collider[] affectedObjects = Physics.OverlapSphere(transform.position, powerRadius); for (int i = 0; i < affectedObjects.Length; i++) { Interactible interactible = affectedObjects[i].GetComponent <Interactible>(); if (interactible != null) { interactible.OnAbilityUp(ability, e); } } }