blob: 01d9bf4f33950c27e3c1e9534a426db1b75c3a03 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
using UnityEngine;
namespace Controllers
{
[RequireComponent(typeof(Rigidbody2D))]
[RequireComponent(typeof(CircleCollider2D))]
public class Ball : MonoBehaviour
{
internal GameController controller;
[SerializeField] private float shotForce;
[SerializeField] private AudioSource ballHitSound;
[SerializeField] private AudioClip ballHitClip;
public Rigidbody2D Rigidbody => _rigidbody != null ? _rigidbody : _rigidbody = GetComponent<Rigidbody2D>();
private Rigidbody2D _rigidbody;
private void OnCollisionEnter2D(Collision2D other)
{
ballHitSound.PlayOneShot(ballHitClip);
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;
}
}
}
|