void Update()
    {
        if (assetsPool.Loaded)
        {
            HashSet <Vector3> half_sx = new HashSet <Vector3>();
            HashSet <Vector3> half_dx = new HashSet <Vector3>();

            getLevel(ref half_sx, ref half_dx);

            foreach (var item in half_sx)
            {
                GameObject point = null;
                if (assetsPool.GetFreeObjectFromPool(eObjectType.COIN_SX, out point))
                {
                    point.transform.position = item;
                    point.transform.rotation = Quaternion.identity;
                }
            }

            foreach (var item in half_dx)
            {
                GameObject point = null;
                if (assetsPool.GetFreeObjectFromPool(eObjectType.COIN_DX, out point))
                {
                    point.transform.position = item;
                    point.transform.rotation = Quaternion.identity;
                }
            }

            enabled = false;
        }
    }
    private IEnumerator ExplosionParticlesEffect(Vector2 hitPoint)
    {
        GameObject effect = null;

        if (assetsPool && assetsPool.GetFreeObjectFromPool(eObjectType.EXPLOSION, out effect))
        {
            effect.transform.position = hitPoint;
            effect.transform.rotation = Quaternion.identity;
            effect.GetComponent <ParticleSystem>().Play();

            // Play sound
            audioPlayer.PlayOneShot(explosionClip);

            yield return(new WaitForSeconds(explosionTime));

            assetsPool.FreeObjectPool(eObjectType.EXPLOSION, effect);
        }

        yield return(null);
    }