using System; using System.Net.Mime; 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(Vector3 target, float time) { transform.right = target - transform.position; Rigidbody.velocity = Vector2.zero; Rigidbody.AddForce((transform.right + (transform.up * 0.5f)) * (shotForce * ((Mathf.Clamp(time, 0f, 1f) + 1)))); } } }