|
|
|
using System;
|
|
|
|
using Unity.Netcode;
|
|
|
|
using UnityEngine;
|
|
|
|
using UnityEngine.Serialization;
|
|
|
|
using Random = UnityEngine.Random;
|
|
|
|
|
|
|
|
namespace Game {
|
|
|
|
public class Ball : NetworkBehaviour {
|
|
|
|
|
|
|
|
public Rigidbody2D Rb { get; private set; }
|
|
|
|
public Player LastContactPlayer { get; private set; }
|
|
|
|
|
|
|
|
private CircleCollider2D Collider { get; set; }
|
|
|
|
|
|
|
|
public float Radius {
|
|
|
|
get => transform.localScale.x * Collider.radius;
|
|
|
|
set => transform.localScale = new Vector3(1, 1, 1) * value * 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void OnCollisionEnter2D(Collision2D other) {
|
|
|
|
if (other.gameObject.TryGetComponent(out Player player))
|
|
|
|
LastContactPlayer = player;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void Awake() {
|
|
|
|
Rb = GetComponent<Rigidbody2D>();
|
|
|
|
Collider = GetComponent<CircleCollider2D>();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void Start() {
|
|
|
|
Rb.velocity = new Vector2(0, 25);
|
|
|
|
Rb.position = new Vector2(Random.Range(-2, 2), 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|