private void FireBeam()
    {
        if (Time.time < _lastShotTime + ShotCooldown)
        {
            return;
        }


        Ray ray = new Ray(Cam.transform.position, Cam.transform.forward);

        Debug.DrawRay(Cam.transform.position, Cam.transform.forward, Color.red, 3f);
        RaycastHit hit;

        Debug.DrawRay(ray.origin, ray.origin + (ray.direction * 100), Color.red, 1);

        if (Physics.Raycast(ray, out hit, int.MaxValue, ShotTargets))
        {
            Destroy(hit.transform.gameObject);

            if (hit.transform.gameObject.GetComponent <Box>() != null)
            {
                if (hit.transform.gameObject.GetComponent <Box>().name.Contains("Black"))
                {
                    Debug.Log(hit.transform.gameObject.GetComponent <Box>());
                    match3.destoryBlack(hit.transform.gameObject.GetComponent <Box>());
                    //Debug.Log("hit");
                    match3.check3();
                }
                else if (hit.transform.gameObject.GetComponent <Box>().name.Contains("White"))
                {
                    match3.destoryWhite(hit.transform.gameObject.GetComponent <Box>());

                    match3.destorybox(hit.transform.gameObject.GetComponent <Box>());
                    Debug.Log("hit");
                    match3.check3();
                }
                else
                {
                    match3.destorybox(hit.transform.gameObject.GetComponent <Box>());
                    Debug.Log("hit");
                    match3.check3();
                }
            }
        }

        _lastShotTime = Time.time;
    }