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(); }
public void Stop() { if (_isPlaying) { _isPlaying = false; _effect.EventComplete -= EffectCompleteHandler; _effect.Complete(); _effect = null; } }
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); } } }
private void PlaceToPoolHandler(AntEffect aEffect) { ReturnToPool(); }
private void OnEnable() { _self = (AntEffect)target; }
public void Reset() { _isPlaying = false; _effect = null; }
private void EffectCompleteHandler(AntEffect aEffect) { Stop(); }