public IEnumerator SpawnParticlesInOneFrame(int spawnAmount)
    {
        SetAsActive();
        OnBeforePlay_Action?.Invoke();
        OnBeforePlay?.Invoke();
        for (var i = 0; i < spawnAmount; i++)
        {
            Sequence_1 = DOTween.Sequence();

            _particleObj = _particleAttractorPool.CreateOrGetPooledObj();
            InitParticleObject(ref _particleObj, ref _particlePartData);
            _particleAttractorPool.AddObjToActiveQueue(_particleObj);

            GenerateSequences();
            Sequence_1.Append(DOTween.Sequence()).OnComplete(DoComplete);
        }

        yield return(typeof(WaitForEndOfFrame));

        foreach (var t in _particleAttractorPool.GetActiveQueue())
        {
            t.gameObject.SetActive(true);
        }
        OnAfterPlay_Action?.Invoke();
        OnAfterPlay?.Invoke();

        OnAfterPlay        = null;
        OnAfterPlay_Action = null;
        SetAsDeactivated();
    }