private void SetTargetPosition(Vector3 position, bool instant, bool useParticles)
        {
            _targetPosition = position;
            if (useParticles && GameManager.Settings.ParticlesEnabled)
            {
                var poofParticlesStart  = GameManager.GetSnowParticleSystem();
                var poofParticlesTarget = GameManager.GetSnowParticleSystem();

                poofParticlesStart.transform.position = transform.position;
                poofParticlesStart.Play();

                poofParticlesTarget.transform.position = _targetPosition;
                poofParticlesTarget.Play();
            }
            if (instant)
            {
                transform.position = _targetPosition;
            }

            _hasReachedTarget = _targetPosition == transform.position;
            if (!_hasReachedTarget)
            {
                _totalDistance = (_targetPosition - transform.position).magnitude;
            }
            else
            {
                OnEntityReachedTarget.Invoke();
            }
        }
Exemple #2
0
 public virtual void Action(GravityBody body)
 {
     if (onAction != null)
     {
         onAction.Invoke(body);
     }
 }
 public void HandleAnimationComplete()
 {
     _isAnimating = false;
     OnEntityFinishedAnimation.Invoke();
 }
 public void _on_ActionLockTimer_timeout()
 {
     IsLocked = false;
     _actionCallback?.Invoke();
     Stop();
 }