Пример #1
0
        private void OnAirborne()
        {
            _state = ActorFeetState.Airborne;

            if (_moveDelayCoroutine != null)
            {
                StopCoroutine(_moveDelayCoroutine);
                _moveDelayCoroutine = null;

                QuickReset();
            }
        }
Пример #2
0
        private void Awake()
        {
            if (_feet.IsColliding)
            {
                _state = ActorFeetState.Grounded;
            }

            _feet.OnFootTouch += OnLand;
            _feet.OnFootLeave += OnAirborne;
            _collider          = GetComponent <BoxCollider2D>();

            var footCollider = _feet.GetComponent <Collider2D>();

            Physics2D.IgnoreCollision(_collider, footCollider, true);
        }
Пример #3
0
        private void Awake()
        {
            _rigidbody = GetComponent <Rigidbody2D>();

            _feet.OnFootTouch += OnLand;
            _feet.OnFootLeave += OnAirborne;

            if (_feet.IsColliding)
            {
                _state = ActorFeetState.Grounded;
            }
            else
            {
                _state = ActorFeetState.Airborne;
            }

            _health.OnActorDeath += OnPlayerDeath;
        }
Пример #4
0
        private void OnLand()
        {
            _state = ActorFeetState.Grounded;

            if (_moveDelayCoroutine == null)
            {
                _moveDelayCoroutine = StartCoroutine(Move());

                var deltaToFaceLeft  = Vector2.Angle(transform.right, Vector2.left);
                var deltaToFaceRight = Vector2.Angle(transform.right, Vector2.right);

                if (deltaToFaceLeft >= deltaToFaceRight)
                {
                    transform.rotation = Quaternion.Euler(0, 180, 0);
                }
                else
                {
                    transform.rotation = Quaternion.identity;
                }

                QuickReset();
            }
        }
Пример #5
0
 private void OnAirborne() => _state = ActorFeetState.Airborne;
Пример #6
0
 private void OnLand() => _state = ActorFeetState.Grounded;