Как включить выключенный компонент после коллизии?
Я новичок и делаю первую свою игру баскетбол шутер, которая практически доделана. Проблема заключается вот в чем, после броска мяча, если игрок не попадает в кольцо, мяч в полете можно подхватить и закинуть в кольцо заново и так до бесконечности, а задумка заключается в том, что после промаха мяч соприкасается с землей и ячейка жизни отнимается, но игроки обходят этот момент тем, что подхватывают мяч в полете не давая ему упасть на землю. Я смог написать строку кода которая отключает весь компонент отвечающий за бросок мяча (GetComponent().enabled = false;), но не могу написать строку которая отвечает за включение этого компонента сразу после коллизии с объектом "Terraine". Какие у вас есть идеи и подсказки?
#region Singleton class: GameManager
public static GameManager Instance;
void Awake ()
{
if (Instance == null)
{
Instance = this;
}
else
{
Destroy (gameObject);
}
}
#endregion
Camera cam;
Touch touch;
public Ball ball;
public Trajectory trajectory;
[SerializeField] float pushForce = 4f;
bool isDragging = false;
Vector2 startPoint;
Vector2 endPoint;
Vector2 direction;
Vector2 force;
float distance;
void Start ()
{
cam = Camera.main;
ball.DesactivateRb ();
}
void Update ()
{
if (Input.touchCount > 0)
{
touch = Input.GetTouch(0);
if (touch.phase == TouchPhase.Began)
{
OnDragStart();
}
if (touch.phase == TouchPhase.Moved)
{
OnDrag();
}
if (touch.phase == TouchPhase.Ended)
{
OnDragEnd();
}
}
}
void OnDragStart ()
{
ball.DesactivateRb ();
startPoint = cam.ScreenToWorldPoint(touch.position);
trajectory.Show ();
}
void OnDrag ()
{
endPoint = cam.ScreenToWorldPoint (touch.position);
distance = Vector2.Distance (startPoint, endPoint);
direction = (startPoint - endPoint).normalized;
force = direction * distance * pushForce;
Debug.DrawLine (startPoint, endPoint);
trajectory.UpdateDots (ball.pos, force);
}
void OnDragEnd ()
{
ball.ActivateRb ();
ball.Push (force);
trajectory.Hide ();
GetComponent<GameManager>().enabled = false;
}