using UnityEngine; using UnityEngine.InputSystem; public class PongPaddleBehavior : MonoBehaviour { public float speed = 5f; public bool isPlayer1 = true; [SerializeField] private InputActionAsset move; private Rigidbody2D rb; private void Start() { rb = GetComponent(); } private void FixedUpdate() { if (!isPlayer1) { Transform ball = FindFirstObjectByType().transform; RaycastHit2D[] hits = Physics2D.RaycastAll(ball.position, ball.GetComponent().linearVelocity, Mathf.Infinity, LayerMask.GetMask("Pong Goal")); Debug.DrawRay(ball.position, ball.GetComponent().linearVelocity * 1000f, Color.red); foreach(RaycastHit2D hit in hits) { if (hit.collider.gameObject.CompareTag("Pong Goal")) { print("Hit"); float dir = transform.position.y - hit.point.y > 0 ? 1 : -1; rb.linearVelocityY = dir * speed * Time.fixedDeltaTime; } } return; } float direction = move.FindAction("Move").ReadValue().y; if (transform.position.y >= 4 && direction > 0 || transform.position.y <= -4 && direction < 0) { direction = 0; } rb.linearVelocityY = direction * speed * Time.fixedDeltaTime; } }