// Update is called once per frame
    void Update()
    {
        foreach (PoissonDot pDot in dots)
        {
            Vector3    dir = pDot.transform.position - head.position;
            Ray        ray = new Ray(head.position, dir.normalized);
            RaycastHit hit;
            Physics.Raycast(ray, out hit, dir.magnitude, layerToCastOn);
            if (hit.collider)
            {
                PoissonDot otherDot = hit.collider.GetComponent <PoissonDot>();
                if (otherDot == pDot)
                {
                    if (ShouldRenderLOSLines)
                    {
                        Debug.DrawLine(transform.parent.position, pDot.transform.position, Color.cyan);
                    }

                    pDot.InFieldOfView();
                }
            }
        }

        if (Input.GetKeyUp(KeyCode.F1))
        {
            ShouldRenderLOSLines = !ShouldRenderLOSLines;
        }
    }
    //void OnTriggerStay(Collider other)
    //{
    //PoissonDot pDot = other.GetComponent<PoissonDot>();
    //if (pDot) {
    //	Vector3 dir = other.transform.position - head.position;
    //	Ray ray = new Ray(head.position, dir.normalized);
    //	RaycastHit hit;
    //	Physics.Raycast(ray, out hit, dir.magnitude, layerToCastOn);
    //	if (hit.collider && hit.collider.Equals(other))
    //		pDot.InFieldOfView();


    //	//Debug.DrawLine(transform.parent.position, other.transform.position, Color.green);
    //}
    //}

    void OnTriggerExit(Collider other)
    {
        PoissonDot pDot = other.GetComponent <PoissonDot>();

        if (pDot)
        {
            dots.Remove(pDot);
        }
    }
    void OnTriggerEnter(Collider other)
    {
        PoissonDot pDot = other.GetComponent <PoissonDot>();

        if (pDot)
        {
            dots.Add(pDot);
        }
    }