// Update is called once per frame void Update() { if (_previousPlayerMovementState != PlayerMovement.MovementState.Dash && _playerMovementReference.CurrentState == PlayerMovement.MovementState.Dash) { StopAllCoroutines(); StartCoroutine(FillEnumerator()); } _previousPlayerMovementState = _playerMovementReference.CurrentState; }
// Update is called once per frame void Update() { if (_playerMovementRef != null) { // do sprite changing stuff if (_lastMovementState != _playerMovementRef.CurrentState) { StopAllCoroutines(); SpriteRenderer _previousActiveSprite = _activeSprite; switch (_playerMovementRef.CurrentState) { case PlayerMovement.MovementState.Idle: _activeSprite = _idleSpriteRef; break; case PlayerMovement.MovementState.Move: _activeSprite = _moveSpriteRef; break; case PlayerMovement.MovementState.Dash: _activeSprite = _dashSpriteRef; break; } if (_lastMovementState == PlayerMovement.MovementState.Idle || _playerMovementRef.CurrentState == PlayerMovement.MovementState.Idle) { StartCoroutine(SpriteTransition(_previousActiveSprite, _activeSprite, _transitionDuration)); } _lastMovementState = _playerMovementRef.CurrentState; } if (_playerMovementRef.CurrentMovement.sqrMagnitude > 0) { _activeSprite.transform.up = Vector3.Lerp(_activeSprite.transform.up, -_playerMovementRef.CurrentMovement.normalized, 0.8f); } } }