public void SpawnOneHealingFX()
 {
     spawnPos = (Vector2)spawnTrans.position + (Random.insideUnitCircle * spawnCircleRadius);
     staticSpritePoolObject = staticSpritePool.RequestStaticSpritePoolObject();
     staticSpritePoolObject.transform.position = spawnPos;
     staticSpritePoolObject.transform.parent   = playerParent;
     staticSpritePoolObject.spriteR.sprite     = crossFXSprite;
     staticSpritePoolObject.StaticSpriteInUse();
     //lastFXSpawned = Instantiate(healingCrossFX, spawnPos, Quaternion.identity, playerParent);
     // Start movement coroutine on that FX object.
     StartCoroutine(FXMovement(staticSpritePoolObject));
 }
    IEnumerator FXMovement(StaticSpritePoolObject _statSpriteObject)
    {
        StaticSpritePoolObject statSpriteObject = _statSpriteObject;
        float   timer    = 0f;
        float   timeMult = 1 / timeToMove;
        Vector2 startPos = statSpriteObject.transform.localPosition;
        Vector2 endPos   = startPos + (Vector2.up * moveDist);

        while (timer < 1f)
        {
            timer += Time.deltaTime * timeMult;
            statSpriteObject.transform.localPosition = Vector2.Lerp(startPos, endPos, fXMoveAnimCurve.Evaluate(timer));
            yield return(null);
        }
        statSpriteObject.inUse = false;
        statSpriteObject.gameObject.SetActive(false);
        statSpriteObject.transform.parent = staticSpritePool.transform;
    }