Почему не работает 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());
}
}