public void PrePoolEffect(IEffectData data, int prePoolCount)
        {
            string effectID = data.GetEffectID();
            UnityComponentPool <EffectPlayerComponentBase> effectPool = GetOrCreatePool(data, effectID);

            effectPool.PrePooling(prePoolCount);
        }
        public EffectPlayCommand GetEffect(IEffectData data)
        {
            string effectID = data.GetEffectID();
            UnityComponentPool <EffectPlayerComponentBase> effectPool = GetOrCreatePool(data, effectID);

            EffectPlayerComponentBase unusedEffect = effectPool.Spawn();

            unusedEffect.SetEffectID(effectID);

            EffectPlayCommand playCommand = _commandPool.Spawn();

            playCommand.Init(unusedEffect, DespawnCommand);

            return(playCommand);
        }