Пример #1
0
    private void OnBallTouchFloor(GameEvents.BallTouchFloorEvent e)
    {
        if (_currentState == eGameState.Play)
        {
            float hitX  = e.ContactPoint.x;
            bool  isOOB = (Mathf.Abs(hitX) > LevelManager.Instance.GetOOBXForSide(eTeam.Away)); // we only use away here because it's positive

            eTeam awardedSide = (hitX < LevelManager.Instance.GetNetPosition().x ? eTeam.Away : eTeam.Home);
            if (isOOB || _ballUnderNet)
            {
                awardedSide = (awardedSide == eTeam.Home ? eTeam.Away : eTeam.Home);
            }

            bool isGameOver = UpdateScore(awardedSide);
            if (isGameOver)
            {
                SetState(eGameState.Over);
            }
            else
            {
                _servingTeamIndex = (int)awardedSide;
                SetState(eGameState.Serve);
            }

            _ballUnderNet = false;
        }
    }
Пример #2
0
 private void OnBallTouchFloor(GameEvents.BallTouchFloorEvent e)
 {
     //Debug.LogFormat("Player {0} Saw ball touch floor!", PlayerManager.Instance.GetPlayerID(this.gameObject));
 }
 private void OnBallHitFloor(GameEvents.BallTouchFloorEvent e)
 {
     // for now, just stop chasing if the ball hits the floor
     _hasTarget = false;
     _targetX   = transform.position.x;
 }