// Update is called once per frame void Update() { if (_isServing) { if (!_playerAnimation.isCelebratingOrAngry()) { if (Math.Abs(_timeToServe) < 0.01) { _timeToServe = Random.Range(0.0f, 1.0f) + 1.0f; } _elapsedTime = _elapsedTime + Time.deltaTime; if (_elapsedTime >= _timeToServe) { AimServe(); _elapsedTime = 0; _timeToServe = 0; SetServing(false); } } } else { BallLogic ballLogic = BallLogic.Instance; bool hasMoved = false; if (ballLogic.IsEnabled() && ballLogic.GetHittingPlayer() != _id && ballLogic.GetHittingPlayer() != 0) { hasMoved = MoveToBall(); } if (!hasMoved) { _playerAnimation.StartMoveAnimation(MovementDirection.IDLE); } } }