Почему не работает WaitForSeconds

Не могу понять почему не работает WaitForSeconds(). Пробовал разные таймеры, пришел к выводу, что нужно использовать корутину, но задержки после выполнения метода не происходит.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ActionMarker : MonoBehaviour {
    [SerializeField] private GameObject attackMarker;
    private Transform attackMarkerTransform;
    ParticleSystem attackMarkerParticles;
    [SerializeField] private float timer = 1f;

    private IEnumerator DrawAttackMarker() {
        while (attackMarker != null) {
            if (!attackMarker.activeInHierarchy) {
                attackMarker.SetActive(true);
            }
            if (GameInputs.Instances.DownLeftClick() && Player.Instances.inBattle) {
                attackMarkerTransform.position = transform.position;
                attackMarkerParticles.Play();
                yield return new WaitForSeconds(timer);
            }
        }
    }

    private void SetWorldPosition() {
        transform.position = Player.Instances.GetRaycastHit().point;
    }

    private void Start() {
        attackMarker.SetActive(false);
        attackMarkerParticles = attackMarker.GetComponent<ParticleSystem>();
        attackMarkerTransform = attackMarker.GetComponent<Transform>();
    }

    private void Update() {
        SetWorldPosition();
        StartCoroutine(DrawAttackMarker());
    }
}

Ответы (0 шт):