Exemplo n.º 1
0
    private void OnCollisionEnter(Collision other)
    {
        if (other.gameObject.tag == "Ball")
        {
            // Запоминаем столкновения только для верхней части платформы.
            var ball           = other.gameObject.GetComponent <BallController>();
            var topPointPlayer = transform.position.y + GetColliderSize().y / 2;
            var topPointBall   = ball.transform.position.y - ball.GetColliderSize().y;

            if (topPointBall >= topPointPlayer)
            {
                _pointContactBallX = other.contacts[0].point.x - transform.position.x;
            }
        }
        else if (other.gameObject.tag == "Bonus")
        {
            var ctrl = other.gameObject.GetComponent <BonusController>();
            switch (ctrl.Bonus)
            {
            case BonusType.Expand:
                Expand();
                break;

            case BonusType.Divide:
                ResetSize();
                BallController.Divide();
                break;

            case BonusType.Slow:
                ResetSize();
                BallController.Slow();
                break;

            case BonusType.Catch:
                ResetSize();
                BallController.Catch();
                break;

            case BonusType.Player:
                Life++;
                break;
            }
            Destroy(other.gameObject);
        }
    }