Exemple #1
0
        public void Play()
        {
            _isPlaying = true;

            var pos = new Vector3(
                _transform.position.x + _positionOffset.x,
                _transform.position.y + _positionOffset.y,
                _transform.position.z
                );

            _effect = AntEffectEngine.GetEffect(_settings.prefab.name, pos);
            _effect.EventComplete += EffectCompleteHandler;
            _effect.Angle          = (_settings.isInheritAngle)
                                ? _angle + _transform.rotation.eulerAngles.z
                                : _angle;

            if (_settings.customDelay)
            {
                _effect.startDelay = _settings.delay + AntMath.RandomRangeFloat(_settings.rndToDelay);
            }

            if (_settings.customLifeTime)
            {
                _effect.isLooping = false;
                _effect.lifeTime  = _settings.lifeTime + AntMath.RandomRangeFloat(_settings.rndToLifeTime);
            }

            _effect.Reset();
            _effect.Play();
        }
Exemple #2
0
 public void Stop()
 {
     if (_isPlaying)
     {
         _isPlaying             = false;
         _effect.EventComplete -= EffectCompleteHandler;
         _effect.Complete();
         _effect = null;
     }
 }
Exemple #3
0
        public static AntEffect GetEffect(string aEffectName, Vector3 aPosition, float aAngle = 0.0f)
        {
            AntEffect emitter = AntPoolManager.GetObject <AntEffect>(aEffectName);

            if (emitter != null)
            {
                emitter.Position = aPosition;
                emitter.Angle    = aAngle;
            }
            return(emitter);
        }
        public void Activate(AntEffect aEffect, AntEmitter aEmitter)
        {
            Effect          = aEffect;
            CurrentLifeTime = 0.0f;
            IsActive        = true;

            for (int i = 0; i < _componentsCount; i++)
            {
                _components[i].Preset = aEmitter.components[i].Preset;
                if (aEmitter.components[i].IsExists)
                {
                    _components[i].Reset(aEmitter);
                }
            }
        }
Exemple #5
0
 private void PlaceToPoolHandler(AntEffect aEffect)
 {
     ReturnToPool();
 }
Exemple #6
0
 private void OnEnable()
 {
     _self = (AntEffect)target;
 }
Exemple #7
0
 public void Reset()
 {
     _isPlaying = false;
     _effect    = null;
 }
Exemple #8
0
 private void EffectCompleteHandler(AntEffect aEffect)
 {
     Stop();
 }