protected virtual void CreateBall() { var ballPrefab = GetBallPrefab(); _ballGO = Instantiate(ballPrefab, ballStartPosition.position, Quaternion.identity); _ball = _ballGO.GetComponent <Ball.Ball>(); var randomService = new RandomUnityService(); _ball.ballMovement = new BallMovement(_ball.speed, randomService, ballData.minSpeed, ballData.maxSpeed); _ball.ballAppearance = new BallAppearance(_ball.GetComponentInChildren <SpriteRenderer>(), randomService, _ball.transform, ballData.minSize, ballData.maxSize, _settingsProvider.GetBallColor()); }