void InitParticleObject(ref GameObject obj, ref ParticlePartData data)
    {
        var particleImage = obj.GetComponent <Image>();

        if (!particleImage)
        {
            particleImage = obj.AddComponent <Image>();
        }
        particleImage.sprite   = data.Sprite;
        obj.transform.position = GenerateSpawnPositionRange();
    }
    void InitParticlePool()
    {
        _particlePartData = new ParticlePartData(SpawnImage);

        if (!ParticleAttractorPool.Instance)
        {
            var obj = new GameObject("UIParticleAttractor_Pool", typeof(RectTransform));
            obj.transform.SetParent(transform.parent);
            obj.transform.localScale    = new Vector3(1.0f, 1.0f, 1.0f);
            obj.transform.localPosition = transform.localPosition;
            obj.AddComponent <ParticleAttractorPool>();
        }

        _particleAttractorPool = ParticleAttractorPool.Instance;
    }