Как включить выключенный компонент после коллизии?

Я новичок и делаю первую свою игру баскетбол шутер, которая практически доделана. Проблема заключается вот в чем, после броска мяча, если игрок не попадает в кольцо, мяч в полете можно подхватить и закинуть в кольцо заново и так до бесконечности, а задумка заключается в том, что после промаха мяч соприкасается с землей и ячейка жизни отнимается, но игроки обходят этот момент тем, что подхватывают мяч в полете не давая ему упасть на землю. Я смог написать строку кода которая отключает весь компонент отвечающий за бросок мяча (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;
} 

Ответы (0 шт):