using UnityEngine; namespace Controllers { [RequireComponent(typeof(Rigidbody2D))] [RequireComponent(typeof(CircleCollider2D))] public class Ball : MonoBehaviour { internal GameController controller; [SerializeField] private float shotForce; public Rigidbody2D Rigidbody => _rigidbody != null ? _rigidbody : _rigidbody = GetComponent(); private Rigidbody2D _rigidbody; private void OnCollisionEnter2D(Collision2D other) { controller.BallDropped(); } public void Shoot(Hoop target, float time) { transform.localRotation = Quaternion.identity; Rigidbody.velocity = (Vector2)((target.transform.position - transform.position).normalized + transform.up * Mathf.Clamp(time, 0f, 1f)) * shotForce; } } }