//Lever's action : custom this as you want IEnumerator TriggerAction() { if (player != null && (!once || (once && !used))) { player.Activate(); yield return(new WaitForSeconds(0.4f)); player.Desactivate(); //Here do the action - switch light etc. foreach (ActivableInterface a in activableTargets) { if (a != null) { if (!a.isActivated()) { a.Activate(); } else { a.Desactivate(); } } } used = true; } triggered = true; }