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); } }