private void OnAirborne() { _state = ActorFeetState.Airborne; if (_moveDelayCoroutine != null) { StopCoroutine(_moveDelayCoroutine); _moveDelayCoroutine = null; QuickReset(); } }
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); }
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; }
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(); } }
private void OnAirborne() => _state = ActorFeetState.Airborne;
private void OnLand() => _state = ActorFeetState.Grounded;